node.js express和猫鼬默认为区分大小写的URL

node.js express and mongoose defaulting to case sensitive URLs

本文关键字:大小写 URL 默认 express js node      更新时间:2023-09-26

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

我的路由.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/不会。

不知道我做错了什么。只是掌握快递。尽管快速文档说 URL 默认是区分大小写的。

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

禁用。将"/Foo"和"/foo"视为相同。

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