使用Javascript文件进行Express / Node Res变量访问

时间:2018-01-30 20:16:19

标签: javascript node.js express pug

我正在使用Express / Node和Pug来构建应用程序。我有一个客户端Javascript文件,它根据来自Express路由和控制器的数据呈现JVectorMap。

我知道如何通过Pug视图访问数据,以及我是否在视图中使用脚本标记。我的问题是,我如何将所有的javascript拉出到另一个文件,仍然能够访问/处理发送到视图的数据?

目前: 路线

router.get('/', dashboard.getRecentReviewsLimit, dashboard.getMapData,function(req, res, next) {
    res.render('dashboard', {
      user: req.user,
      dashreviews: res.locals.reviewlimit,
      mapdata: res.locals.mapdata
    });
});

Pug Template / View(此脚本使用地图更新div):

script(type='text/javascript').

    var mapData = !{JSON.stringify(mapdata)};

    var max = 0,
    min = Number.MAX_VALUE,
    cc,
    ........

如何将所有脚本代码拉到单独的文件中,仍然可以访问!{JSON.stringify(mapdata)}数据?

1 个答案:

答案 0 :(得分:0)

最简单的事情就是通过哈巴狗生成你的javascript。

给出类似./views/js/datamapper.pug

的内容
var mapData = !{JSON.stringify(mapdata)};

var max = 0,
min = Number.MAX_VALUE,
cc,
........

然后你可以有一条路线:

router.get('/datamap.js', (req, res) => {
  res.render('js/datamapper', { mapdata: ... });
});