Javascript 使用loop won';行不通

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<

我有一堆静态文件,它们被命名为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<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);
    });