【发布时间】:2016-10-05 05:55:36
【问题描述】:
我是 node.js 的新手,正在尝试创建一个小型 API。我使用 Express 进行路由,使用 async.jc 逐步处理呼叫。当只有一个请求进入时,这很好用,但是当我尝试从我的机器中触发 2 个或更多请求时,进程会混淆变量中的值并崩溃。
这是来自我的来源的简短 sn-p:
router.get('/new', function (request, res) {
async.waterfall([
function(callback) {
// get a unique domain
client.spop('domainSet', function(err, domain) {
userdata = {
email: 'user' + '@' + domain + '.' + mydomain,
password: randomstring.generate(10),
username: domain,
name: domain,
confirm: "false"
}
if (err) return next(err);
callback(null, userdata, userdata.password);
})
},
function(userdata, userpwd, callback) {
myapp.users.create(userdata, function(user) {
console.log('Creating new user: ' + userdata.email);
callback(null, user, userpwd);
});
},
如何保持每个请求的“上下文/范围”?我确定我错过了什么(-:或者是我从同一台机器发出请求的唯一问题??
【问题讨论】:
-
第一个函数中的
userdata没有在任何地方声明,因此它正在获取全局范围。试试var userdata = { -
ahhh ;) 谢谢 - 如果你从你的评论中创建一个答案,我会接受它;)
标签: node.js express asynchronous