我有一个config.js
文件,其中包含我的所有应用设置。其中一些设置需要与前端脚本和后端共享。
我有一些机密变量,但我不希望暴露给前端。任何NodeJS / ExpressJS wizz孩子都有这方面的好解决方案吗?
您是否将公共配置数据保存在/public
位置,并将机密服务器端数据分开显示在公开的/public
文件夹上?
谢谢你们
答案 0 :(得分:7)
使用express-expose将数据从服务器共享(或“公开”)到客户端的效果非常好。正如Raynos所说,我会将机密变量保存为环境变量,然后您就可以安全地公开所有设置。
或者您可以在设置中创建“共享”对象。像这样:
app.set('shared', {
setting1: mydata
, setting2: new OAuth(...)
, setting3: { ... }
});
允许您在服务器上以app.setting.shared.setting1
访问设置,然后您可以app.expose(app.setting.shared)
,以便客户端JS可以访问同一个对象。
答案 1 :(得分:2)
您可以使用express-expose与前端共享变量,也可以使用browserify并在模块中共享您的设置。
答案 2 :(得分:1)
我有一些机密变量,但我不希望这些变量暴露给前端。
我通常在环境变量中定义机密变量。这也解决了在版本控制中提交/硬编码这些变量的问题。
答案 3 :(得分:0)