Javascript 使用loop won';行不通
我有一堆静态文件,它们被命名为article1、article2等等。所以我知道当我这么做的时候它起作用了Javascript 使用loop won';行不通,javascript,node.js,express,Javascript,Node.js,Express,我有一堆静态文件,它们被命名为article1、article2等等。所以我知道当我这么做的时候它起作用了 app.get('/this-is-my-article-routes', (req, res) => { res.render('article1'); }); 但是它太单调了,而且有很多重复的代码。我试过了,但没用 const articleArr = [ 'this-is-my-article-routes' ]; for (i = 0; i<
app.get('/this-is-my-article-routes', (req, res) => {
res.render('article1');
});
但是它太单调了,而且有很多重复的代码。我试过了,但没用
const articleArr = [
'this-is-my-article-routes'
];
for (i = 0; i<9; i++) {
app.get(`/${articleArr[i]}`, (req, res) => {
res.render(`article${i}`);
});
}
const articleArr=[
“这是我的文章”
];
对于(i=0;i{
res.render(`article${i}`);
});
}
这可能吗?或者我的代码有问题?您的数组
articleArr
是否包含10个元素
我认为,更好的方法是:
var articleList = [ 'first', 'second', 'third']
app.get('/:article', (req, res) {
var articleName = req.params.article
var index = articleList.indexOf(articleName)
if (index == -1) {
// No Aricle Found
}
res.render(`articles$(index)`)
})
此代码也可以正常工作,但不是推荐的代码
var articleList = ['first', 'second']
articleList.forEach(function(value){
app.get('/'+value, (req, res) => {
res.status(200).json({
value: value
})
})
})
为什么要否决投票?奇怪的是,当路由处理程序实际运行时,您的
i
变量将出错。如果使用for(让i=0;i<9;i++)
,它可能会起作用,因为for
循环中的let
会为循环的每次调用创建一个单独的i
变量,因此在将来某个时间运行事件句柄时,它将保留适当的值。是的。但什么是:文章?标题不应为文件名。如果用户请求/first endpoint,则将呈现articles0。您可以将'this-is-my-article-routes'
存储为articleList和render articles0中的第一个元素。这个概念很好,但传递给res.render()
的参数是错误的。您需要构造一个字符串。
how about simple solution using query params
app.get('articleArr/:id', (req, res) => {
res.render('article/'+req.params.id);
});