【发布时间】:2020-02-20 01:49:49
【问题描述】:
我编写了两个不同的 Express 路由请求,它们引用一个对象(其中包含与每部电影相关的电影和数据)。它们应该显示不同的结果,但在结构上完全相同。但是,一种有效,另一种无效。代码如下:
电影按标题
app.get("/movies/:title", (req, res) => {
res.json(Movies.find((movie) => {
return movie.title === req.params.title
}));
});
按类型划分的电影 - 这个不行
app.get("/movies/:genre", (req, res) => {
res.json(Movies.find((movie) => {
return movie.genre === req.params.genre
}));
});
它们指的是以下对象:
let Movies = [{
id: 1,
title: "Night of the Living Dead",
genre: "Classical",
director: {
name: "George P. Romero",
bio: "Lorem ipsum dolor sit amet",
birth: "01/01/1900",
death: "01/01/1900"
},
imgUrl: "https://z.com/1/img/thumb.jpg"
},
{
id: 2,
title: "28 days later",
genre: "Apocalypse",
director: {
name: "Danny Boyle",
bio: "Lorem ipsum dolor sit amet consectetur",
birth: "01/01/1900",
death: "01/01/1900"
},
imgUrl: "https://z.com/2/img/thumb.jpg"
},
{
id: 3,
title: "Cell",
genre: "Apocalypse",
director: {
name: "Christopher Hatton",
bio: "ipsum dolor sit",
birth: "01/01/1900",
death: "01/01/1900"
},
imgUrl: "https://z.com/3/img/thumb.jpg"
}
];
第一个请求 localhost:8080/movies/Lorem Ipsum 可以正常工作,但第二个请求 localhost:8080/movies/Classical 或任何其他请求失败。
Express和文件顶部的应用程序的功能调用都可以(它适用于第一个路由请求。
我将不胜感激。提前感谢您的可用性。
【问题讨论】:
标签: express routing api-design