我在我的.js文件中使用此代码,该文件是通过npm global http-server使用的网站的一部分:
function getParsedStorage() {
let fs = require('fs');
return JSON.parse(fs.readFileSync('./../manager-data.json', 'utf8'));
}
并获得错误:
jQuery.Deferred异常:无法找到变量:require(2)(exceptionHook - jquery.min.js:2:31584)
ReferenceError:找不到变量:require(jquery.min.js:2:31697)
我已经使用 npm install file-system --save 安装了文件系统软件包,但没有改变任何内容。
答案 0 :(得分:1)
在我看来,您试图在Web浏览器中使用Node.js的require
函数,而不使用提供兼容require
方法的模块系统。
如果没有其他信息,我无法确定,但我的建议是调查像Require.js,SystemJS或Browserify这样的模块加载器,它们都可以让您使用模块中的这种语法。
话虽如此,对于您正在描述的用例(从网站访问JSON文件),您可以使用简单的XHRHttpRequest或fetch
API来提供更好的服务。
以下是使用fetch
API返回已解析的JSON文件内容的示例。
// Returns a Promise that resolves to the parsed storage data
// NOTE: Lacks any error handling
function getParsedStorage() {
return fetch("../manager-data.json").then(response => response.json())
}