nodejs - 从文件向Jade传递数据(模块)。

问题描述 投票:0回答:1

我正在开发一个类似于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

当我在客户端导入时,它可以完美地工作,但不能将它传递给模板来显示它。有什么方法可以做到这一点吗?我可以用数据库代替,但我需要客户端也加载单位数据。先谢谢你

javascript node.js pug server-side-rendering
1个回答
0
投票

尝试写你的 export 声明中 data.js 作为。

module.exports = Units

然后用 require() 在路由器上作为。

const Units = require('./data.js')
© www.soinside.com 2019 - 2024. All rights reserved.