使用.json扩展名强制从Express.js端点

时间:2015-11-30 20:12:39

标签: javascript json node.js rest express

是否可以在Express.js中设置端点,以便用户可以通过将.json附加到URL来表示他们只喜欢JSON输出?

例如,如果我有端点example.com/data/:data_id,是否有一个函数someFunction,如果我使用以下代码命中端点example.json/data/:data_id,我将能够获得JSON输出出?

router.get('/data/:data_id', function(req, res, next) {
    var extension = req.someFunction();
    if (extension === 'json') {
        res.json({...});
    } else {
        res.render('view', {...});
    };
});

我知道可能有一种方法可以使用内容标题,但我已经看到它recommended内容类型由扩展名指定,以便浏览器可以浏览API。

1 个答案:

答案 0 :(得分:1)

我认为您只需在查询网址

中添加格式参数即可

router.get('/data/:data_id', function(req, res, next) {
    if (req.query.format && req.query.format === 'json') {
        res.json({...});
    } else {
        res.render('view', {...});
    };
});

像这样的东西!