我正在开发一个类似于Pokémon Showdown的小型战斗模拟器。我正在使用express和pug(jade)来渲染html。它不是关于神奇宝贝的,但如果你知道这个网站,你可能会得到一个更好的参考。我一直在检查它的 公共github repo 但我对他们如何做事情感到迷茫。
我有一个模块,数据如下。
// public/data.js
const Units = {
"Swordsman": { ... }, // data of the Swordsman unit
"Healer": { ... }, // data of the Healer unit
... // ~ 500 additional entries
};
export { Units as default };
在客户端,我完全可以通过使用 import Units from './data.js'
. 然而,在团队建设中,我想通过pugjade模板显示所有可用的单位。
- for (unit in Units)
li= unit.name
我怎样才能把数据传递给模板呢? 我在路由器上试过。
import Units from './data.js';
router.get('/batallions', function(req, res, next) {
res.render('batallions', {
title: 'Batallions',
Units: Units
});
});
两种方法都试过了 import ... from ...
和 require()
但它给我的错误。
(function (exports, require, module, __filename, __dirname) { import Units from './data.js';
^^^^^
SyntaxError: Unexpected identifier
和:
export { Units as default };
^^^^^^
SyntaxError: Unexpected token export
当我在客户端导入时,它可以完美地工作,但不能将它传递给模板来显示它。有什么方法可以做到这一点吗?我可以用数据库代替,但我需要客户端也加载单位数据。先谢谢你
尝试写你的 export
声明中 data.js
作为。
module.exports = Units
然后用 require()
在路由器上作为。
const Units = require('./data.js')