Javascript 如何在express js中动态添加新定义的路由?

Javascript 如何在express js中动态添加新定义的路由?,javascript,node.js,express,Javascript,Node.js,Express,在我的Express应用程序中,我尝试在运行时动态添加新定义的路由。这是我的密码: app.post('/new-user', function(req,res){ var temp = { name: "joe-bloggs", age: 20 }; users.push(temp); // users is a global variable defined earlier var path = '/' + temp.name; app.get(path, f

在我的Express应用程序中,我尝试在运行时动态添加新定义的路由。这是我的密码:

app.post('/new-user', function(req,res){
    var temp = { name: "joe-bloggs", age: 20 };
    users.push(temp); // users is a global variable defined earlier
    var path = '/' + temp.name;
    app.get(path, function(req,res){
         res.send('Welcome to localhost:3000/joe-bloggs');
    });
});
因此,现在如果用户试图访问localhost:3000/joe bloggs,他们将遇到欢迎消息,但是我一直收到一条404未找到,因为express告诉我路由尚未定义。

只需使用req.params就可以了,它是为这种情况而设计的。无需为每个用户添加额外的路由

app.get('/:username', function(req, res) {
  res.send('Welcome to localhost:3000/' + req.params.username);
});

听起来你想要的是paramsUserName它不起作用的原因是因为在定义错误和404处理程序之后定义了路由,所以从未到达。如果改为在路由器上定义它,它将一直工作,直到应用程序重新启动。当然,params以正确的方式解决了这两个问题。