9

尝试使用此 smartsheet api:http ://smartsheet-platform.github.io/api-docs/?javascript#node.js-sample-code

它告诉我为nodejs做这个:

var client = require('smartsheet');
var smartsheet = client.createClient({accessToken:'ACCESSTOKEN'});

所以我在我的 main.js 文件中执行此操作,但出现错误:未捕获的ReferenceError:未定义要求

我认为这是因为我是 nodejs/npm 的新手,但我无法在任何实际放置此 require 函数的地方找到它。我想我需要弄乱我的 node.js 文件,但我完全确定。非常感谢任何指向文档或建议的链接!

4

6 回答 6

27

尝试从 package.json 中删除 "type": "module"

于 2020-02-14T10:23:46.263 回答
8

将所有 require 语句替换为 import 语句。例子:

//BEFORE:
var client = require('smartsheet');
//AFTER:
import client from 'smartsheet';

为我工作。

于 2020-07-31T22:15:31.410 回答
2

这是因为您在浏览器中使用特定于节点的调用!NodeJS 是一种服务器端技术,而不是浏览器技术。因此,特定于节点的调用只能在服务器中工作。

您尝试使用的smartsheet api 需要从服务器端代码而不是客户端代码调用。

对于您的情况,您可以设置ExpressJS并创建一个内部调用 smartsheet api 的虚拟 api。

如果您确实想在客户端使用此类调用,则可以使用CommonJS客户端实现

于 2016-07-13T07:46:33.857 回答
0
require() does not exist in the browser/client-side JavaScript

有关 Node.js 客户端的更多信息:未捕获的 ReferenceError:未定义要求

于 2016-07-13T07:00:45.383 回答
0

您不能require直接在浏览器中使用。你需要RequireJS,一个 JavaScript 模块加载器。

这是RequireJS的介绍性说明。

RequireJS 是一个 JavaScript 文件和模块加载器。它针对浏览器内使用进行了优化,但也可以在其他 JavaScript 环境中使用,例如 Rhino 和 Node。使用像 RequireJS 这样的模块化脚本加载器将提高代码的速度和质量。

于 2016-07-13T10:13:12.473 回答
0

从技术上讲,它是内置在浏览器中的,最好的办法是在项目中禁用 es-lint,所有这些错误都不会发生。或者尝试评论整个 es-lint 文件。

它对我有用!

于 2021-07-07T03:22:17.170 回答