[英]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
你不能直接在浏览器中使用require
。 你需要RequireJS ,一个 JavaScript 模块加载器。
这是RequireJS 的介绍性说明。
RequireJS 是一个 JavaScript 文件和模块加载器。 它针对浏览器内使用进行了优化,但也可以在其他 JavaScript 环境中使用,如 Rhino 和 Node.js。 使用像 RequireJS 这样的模块化脚本加载器将提高代码的速度和质量。
从技术上讲,它是内置在浏览器中的,最好的办法是禁用项目中的 es-lint,所有这些错误都不会发生。 或者尝试评论整个 es-lint 文件。
它对我有用!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.