1

我有一个快递服务器,我想写一些类似的东西

for(p in params)
    app.get("/"+p,function (req, res) {res.send(p)});

现在,对于 params[0],请求到达,但响应是 params[n-1]

4

1 回答 1

2

您可以使用匿名函数在每次迭代时复制“p”。

var http = require('http');
var express = require('express');
var app = express();

var params = {
    'a' : 1,
    'b' : 2,
    'c' : 3
};

for (p in params) {
    (function (p) {
        app.get('/' + p, function (req, res) { res.send(p); });
    })(p);
}

http.createServer(app).listen(1339, '0.0.0.0');
于 2013-04-01T10:47:22.747 回答