我正在使用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)}
数据?
答案 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: ... });
});