快速使用循环中的动态渲染将不起作用

时间:2017-04-02 05:25:39

标签: 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<9; i++) {
    app.get(`/${articleArr[i]}`, (req, res) => {
        res.render(`article${i}`);
    });
}

这甚至可能吗?或者我的代码出了问题?

2 个答案:

答案 0 :(得分:1)

how about simple solution using query params 
app.get('articleArr/:id', (req, res) => {
        res.render('article/'+req.params.id);
    });

答案 1 :(得分:0)

您的数组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
        })
    })
})