将JSON数据发送到NodeJs中的视图

时间:2017-10-05 08:35:19

标签: javascript node.js express

我正在对我的json进行一些过滤并将其保存在驱动程序变量中。我的驱动程序变量返回JSON数据,我想将它们原样发送到视图而不做任何更改。

我的问题是:如何将驱动程序var发送到视图?

router.get('/', function(req, res, next) {
rp(options)
    .then(function (repos) {
        var obj = repos;
        var driver = _.filter( obj.features, ['id', 'tmp_location.20658']);
        console.log(driver);        })
    .catch(function (err) {
        // Delete failed...
    });
   res.render('index', { title: 'Express' });
});

2 个答案:

答案 0 :(得分:1)

res.render移至rp.then并将driver作为res.render参数中的另一个属性传递。

router.get('/', function(req, res, next) {
rp(options)
    .then(function (repos) {
        var obj = repos;
        var driver = _.filter( obj.features, ['id', 'tmp_location.20658']);
        console.log(driver);
        res.render('index', { title: 'Express', driver: driver });
    })
    .catch(function (err) {
        // Delete failed...
    });

});

请同时阅读How do I return the response from an asynchronous call?

修改

您还应该在next处理程序

中使用catch
.catch(function (err) {
    next(err);
});

答案 1 :(得分:0)

router.get('/', function(req, res, next) {
rp(options)
.then(function (repos) {
    var obj = repos;
    var driver = _.filter( obj.features, ['id', 'tmp_location.20658']);
    console.log(driver);        })
.catch(function (err) {
    // Delete failed...
});
res.render('index', { title: 'Express' , data:driver});
});