在每个请求 nodejs 中获取更新的文件
Get updated file in each request nodejs
基本上,我编写了一个服务器来向发出请求的用户响应一个 js 文件(对象格式)。 js文件由两个配置文件生成。我称他们为 config1.js 和 config2.js.
这是我的代码:
var express = require('express');
var app = express();
var _ = require('underscore');
app.use('/config.js', function (req, res) {
var config1 = require('config1');
var config2 = require('config2');
var config = _.extend(config1, config2);
res.set({'Content-Type': 'application/javascript'});
res.send(JSON.stringify(config));
});
据我了解,每次我向 /config.js 发出请求时,它会在我启动后获取 config1 和 config2 文件中的最新代码服务器。但是,如果我启动服务器,请在 config1.js 中进行一些修改。然后提出请求,它仍然会 return 给我旧代码。任何人都可以解释以及如何解决这个问题吗?谢谢
您不应该使用 require 来加载文件,因为这不是它的目的,它会缓存加载的文件(有关详细信息,请参阅 this post),这就是您每次获得相同内容的原因你提出要求。
请改用 concat-files 之类的工具,或者根据需要将其连接 "by hand"。
连接文件和扩展对象不是等同的操作。您可以通过 'fs' 模块读取文件、解析对象、扩展和发送。
基本上,我编写了一个服务器来向发出请求的用户响应一个 js 文件(对象格式)。 js文件由两个配置文件生成。我称他们为 config1.js 和 config2.js.
这是我的代码:
var express = require('express');
var app = express();
var _ = require('underscore');
app.use('/config.js', function (req, res) {
var config1 = require('config1');
var config2 = require('config2');
var config = _.extend(config1, config2);
res.set({'Content-Type': 'application/javascript'});
res.send(JSON.stringify(config));
});
据我了解,每次我向 /config.js 发出请求时,它会在我启动后获取 config1 和 config2 文件中的最新代码服务器。但是,如果我启动服务器,请在 config1.js 中进行一些修改。然后提出请求,它仍然会 return 给我旧代码。任何人都可以解释以及如何解决这个问题吗?谢谢
您不应该使用 require 来加载文件,因为这不是它的目的,它会缓存加载的文件(有关详细信息,请参阅 this post),这就是您每次获得相同内容的原因你提出要求。 请改用 concat-files 之类的工具,或者根据需要将其连接 "by hand"。
连接文件和扩展对象不是等同的操作。您可以通过 'fs' 模块读取文件、解析对象、扩展和发送。