Express与asynchronous的Node.js API:遇到多个请求时出错

我是node.js的新手,尝试创build一个小的API。 我正在使用Express进行路由,并使用async.jc来逐步处理呼叫。 当只有一个请求进来时,这工作正常,但是当我尝试从我的机​​器发起2个或更多请求时,这个进程正在混合variables和崩溃中的值。

这里是我的来源简短的片段:

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); }); }, 

如何保持每个请求的“上下文/范围”? 我相信我缺less的东西( – :或者是唯一的问题,我从同一台机器的请求?

第一个瀑布函数中的userdata需要在该函数内声明,否则它具有全局范围。

 router.get('/new', function (request, res) { async.waterfall([ function(callback) { // get a unique domain client.spop('domainSet', function(err, domain) { var 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); }); },