ReferenceError:无法找到变量:require - JQuery错误

时间:2017-08-15 10:31:11

标签: javascript jquery node.js

我在我的.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 安装了文件系统软件包,但没有改变任何内容。

1 个答案:

答案 0 :(得分:1)

在我看来,您试图在Web浏览器中使用Node.js的require函数,而不使用提供兼容require方法的模块系统。

如果没有其他信息,我无法确定,但我的建议是调查像Require.jsSystemJSBrowserify这样的模块加载器,它们都可以让您使用模块中的这种语法。

话虽如此,对于您正在描述的用例(从网站访问JSON文件),您可以使用简单的XHRHttpRequestfetch 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())
}