在节点中创建动态路径并表达js

时间:2016-07-28 13:16:06

标签: node.js express routes js-routes

我正在努力使路线像/ review- {title}一样动态 - {id} ,但导致错误不知道为什么,如果用户输入错误的参数而不是如何处理。 我的客户要求是如上所述,我不是很好的节点和表达请任何人建议如何制作如上所述的路线。 此外,如果我需要制作这样的路线/ review /:title /:id格式,我怎么能这样做。

我正在尝试,但它会将我重定向到404页面,

请在里面找到我现有的代码详情,     server.js

this is working.. 
app.get('/review', (req, res) => {
 res.sendFile(path.resolve(__dirname, '../client/review.html'));
});

but not this one..
app.get('/review-*-*', (req, res) => {
 res.sendFile(path.resolve(__dirname, '../client/review.html'));
});

Also not this one working
app.get('/review/*/*', (req, res) => {
 res.sendFile(path.resolve(__dirname, '../client/review.html'));
});

This is 404 page which call evrytime while accessing dynamic pages
app.get('/*', (req, res) => {
 res.sendFile(path.resolve(__dirname, '../client/404.html'));
});

1 个答案:

答案 0 :(得分:2)

查看Express中路由的语法。

在大多数情况下,你最好使用路线参数,例如:

app.get('/review/:title/:id', (req, res) => {
 res.sendFile(path.resolve(__dirname, '../client/review.html'));
});

更多的灵活性(但对大多数开发人员来说更不透明)将匹配正则表达式。

我认为你可以把*放在单词的中间(它们给出一个像'/ abc * def'的例子,但是我不确定它和你正在做的其他事情有多好,我不喜欢如果你这样做,我认为你可以在模式中有多个*。)