Reputation: 21
I have an express server, and I would like to write something like
for(p in params)
app.get("/"+p,function (req, res) {res.send(p)});
Now, for params[0], request arrives, but response is params[n-1]
Upvotes: 1
Views: 77
Reputation: 26219
You can use anonimous function to make copy of 'p' on each iteration.
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');
Upvotes: 2