【发布时间】:2021-04-14 09:28:14
【问题描述】:
我正在尝试访问 Strava API,但终端正在显示
ReferenceError: require is not defined
at file:///Users/Me/directory/code.js:1:10
at ModuleJob.run (internal/modules/esm/module_job.js:152:23)
at async Loader.import (internal/modules/esm/loader.js:166:24)
at async Object.loadESM (internal/process/esm_loader.js:68:5)
当我尝试在终端中从他们的网站运行代码时。
我研究过它,它说这是因为我在浏览器上运行它,但我认为不是。我注释掉了所有的代码,所以唯一的一行是
var StravaApiV3 = require('strava_api_v3');
并且错误仍然不断出现。我只是用“cd 目录”然后节点 code.js 运行它(为清楚起见,目录和代码的名称已更改),所以我不知道为什么它不起作用。一行代码是否以某种方式进入浏览器?我正在使用 MacOS Big Sur 运行它,如果这有什么改变的话。
这是 Strava 在其网站上的其余代码,如果你需要的话:
var StravaApiV3 = require('strava_api_v3');
var defaultClient = StravaApiV3.ApiClient.instance;
// Configure OAuth2 access token for authorization: strava_oauth
var strava_oauth = defaultClient.authentications['strava_oauth'];
strava_oauth.accessToken = "YOUR ACCESS TOKEN"
var api = new StravaApiV3.ActivitiesApi()
var id = 789; // {Long} The identifier of the activity.
var opts = {
'includeAllEfforts': true // {Boolean} To include all segments efforts.
};
var callback = function(error, data, response) {
if (error) {
console.error(error);
} else {
console.log('API called successfully. Returned data: ' + data);
}
};
api.getActivityById(id, opts, callback);
TL;DR 这个代码给了我“require is not defined”的错误,即使我用 node.js 运行它
编辑:
-当我在同一目录中运行虚拟 require(它只是 var fs = require('fs');)时,它仍然给出相同的错误
-我的目录的 package.json 是
{
"name": "stravatest",
"version": "1.0.0",
"description": "description",
"main": "stravatest.js",
"type":"module",
"scripts": {
"test": "test"
},
"repository": {
"type": "git",
"url": "url"
},
"keywords": [
"keyword"
],
"author": "author",
"license": "ISC"
}
【问题讨论】:
-
您的
package.json中有什么内容以及您正在运行的文件的扩展名是什么? -
创建一个新文件
test.js在该文件中放入一行代码var fs = require('fs');。使用节点node test.js运行该文件。如果出错,请将该信息与您的 nodejs 版本一起发布。如果没有出错,则说明您的其他文件有问题。 -
我没有看到任何名为
strava_api_v3的公共模块,因此无法测试该代码中是否存在错误(我假设它是私有模块?)。有一些公共模块strava和strava-v3可以工作。 -
@Liam - 我认为 OP 实际上并没有尝试在浏览器中运行任何东西,所以到目前为止您的指导似乎不适用于在普通 nodejs 中运行。
-
您能否使用完整的堆栈跟踪更新您问题中的错误消息?
标签: javascript node.js