我对 node/express 还很陌生,但到目前为止我很喜欢。
我现在写了几个应用程序后注意到的一件事是,请求对象的属性值有时会在所需模块内的请求之间持续存在;不一定来自同一个 IP 甚至浏览器。
举个例子,这个超级简单的 GET 请求:
GET /lookup/?first=ben&last=ipsen
处理如下:
app.get('/lookup/', function(req, res){
lookup = require('lookup')
lookup.find_user(req, res, function(err, user){
if(err) throw new Error(err)
res.send(user)
});
});
显然,这很好用,生活也很棒。但是...如果收到第二个请求,但其值为空或不存在,请说:
GET /lookup/?first=
app.get('/lookup/', function(req, res){
lookup = require('lookup')
lookup.find_user(req, res, function(err, user){
if(err) throw new Error(err)
// user.first = ben
// user.last = ipsen !?
res.send(user)
});
});
这是由 require 缓存而不是 express 错误引起的问题吗?我在请求中加载模块是否犯了错误?在很多情况下,我想根据请求加载特定模块,但我可以在没有那个“要求”的情况下生活.. har。
我肯定在这里遇到了一些新手问题,但一如既往地感谢任何指导!