【问题标题】:How to add new defined routes in express js dynamically?如何在express js中动态添加新定义的路由?
【发布时间】:2016-12-30 20:13:50
【问题描述】:

在我的 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 not found 因为 express 告诉我路由尚未定义.

【问题讨论】:

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

标签: javascript node.js express


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-25
    • 1970-01-01
    • 2017-09-21
    • 2017-10-23
    • 2013-05-09
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多