我需要在节点应用程序和浏览器中都有一些配置对象。以下是配置的路径和内容:
路径:[app] /public/js/config.js
含量:
var config = {
"foo": "bar",
"num": 42,
"list": ["a","b","f"]
};
var isBrowser=new Function("try {return this===window;}catch(e){ return false;}");
if(!isBrowser) {
module.exports = config;
}
在我的html中,我只需添加一个脚本元素,它可以正常工作:
<script src="/js/config.js"></script>
在节点应用程序中,我似乎没有导入对象,我得到一个空对象:
var config = require('./public/js/config.js');
console.log('config:', config); // gives config: {}
我做错了什么?
答案 0 :(得分:3)
为isBrowser
变量分配了一个函数,但它永远不会被执行。
因此它不会执行任何环境检测。
答案 1 :(得分:1)
代码应该是
if(!isBrowser()) {
module.exports = config;
}
isBrowser
是此处的功能。由于您的版本!isBrowser
始终返回false
,因此永远不会执行module.exports = config
。
答案 2 :(得分:1)
替换if block
if(!isBrowser) {
module.exports = config;
}
到
if(!isBrowser()) {//this isBrowser() function
module.exports = config;
}