繁体   English   中英

"要求未定义nodejs"

[英]Require is not defined nodejs

尝试使用此 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 文件,但我完全确定。 非常感谢任何指向文档或建议的链接!

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

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

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

为我工作。

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

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

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

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

require()NodeJS提供的一个函数,它不能在client/browser上工作,因为client/browser没有像require()这样的东西

require() does not exist in the browser/client-side JavaScript

有关节点客户端的更多信息:未捕获的 ReferenceError: require is not defined

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

这是RequireJS 的介绍性说明。

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

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

它对我有用!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM