【问题标题】:node.js express and mongoose defaulting to case sensitive URLsnode.js express 和 mongoose 默认为区分大小写的 URL
【发布时间】:2016-02-02 08:11:27
【问题描述】:

我正在构建一个 node.js / express / mongo + mongoose 项目,但我遇到了区分大小写 URL 的问题。我希望能够转到/location/london 但是,我从数据库调用的:name 实际上是London

我的 routes.js 文件如下:

app.get('/location/:name', function(req, res) {
  mongoose.model('locations').find({name: req.params.name}, function(err, locations) {
    res.send(locations);
  })
})

/location/London 可以工作,但 /location/london/ 不行。

不知道我做错了什么。刚刚开始掌握 Express。虽然express docs 说 URL 默认区分大小写。

区分大小写的路由 |布尔值 |启用区分大小写。

已禁用。将“/Foo”和“/foo”视为相同。

【问题讨论】:

    标签: javascript node.js mongodb express mongoose


    【解决方案1】:

    您可以传入req.params.name.toLowerCase(),而不是传入req.params.name。那应该可以解决您的问题。 或者您应该确保您的路由设置为不区分大小写,并重新启动服务器以刷新配置。

    【讨论】:

    • 我无法让它工作,我仍在传递 /location/london 并且它不会返回任何东西,但 London 会因为它在 mongo 数据库中。目前,我不确定这是否是正确的做事方式,但我只是添加了一个 slug,所以我可以使用它,然后转到 /location/london,然后在模板中的其他地方使用 name: London
    猜你喜欢
    • 2015-08-31
    • 1970-01-01
    • 2016-06-19
    • 2021-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多