【发布时间】:2019-12-16 23:04:15
【问题描述】:
Tl;dr:尽管安装了 node.js 和 requrejs,但我在 Chrome JS 控制台中收到 require is not defined 错误。
我正在尝试使用main.js 中的以下代码访问外部 JSON 文件中的 API 密钥:
function readTextFile(file, callback) {
var rawFile = new XMLHttpRequest();
rawFile.overrideMimeType("application/json");
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4 && rawFile.status == "200") {
callback(rawFile.responseText);
}
}
rawFile.send(null);
}
readTextFile("../secrets.json", function(text){
var data = JSON.parse(text);
apiKey = data.api_key;
username = data.username;
});
由于我稍后使用 XMLHttpRequest 到 API,它有一个 http:// 方案,我希望使用 CORS 来解决同源策略。
我把这些行放在main.js的开头:
var cors = require('cors')
var app = express()
app.use(cors());
我的目录结构如下:
/project
index.html
secrets.json
/scripts
main.js
require.js
在 Chrome 上的 JS 控制台中,我收到 require is not defined 错误。我哪里出错了?
【问题讨论】:
-
require()不是 Chrome 本身存在的东西。它存在于 node.js 中。您试图在 Chrome 中的哪个位置运行它,为什么?main.js是您尝试在 Chrome 中运行的东西吗?那是 node.js 代码,不能在 Chrome 中运行。 -
express js 和 cors 是与使用 javascript 的服务器端开发相关的东西,而不是在 Chrome 控制台中执行的东西
标签: javascript node.js cors