【问题标题】:Require is not defined nodejs要求未定义nodejs
【发布时间】:2016-07-13 06:04:28
【问题描述】:

尝试使用这个 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 文件中执行此操作,但出现错误:Uncaught ReferenceError: require is not defined

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

【问题讨论】:

  • 你是如何启动你的节点应用程序的?
  • 你知道,我认为这可能是我的第一个问题。我根本没有 server.js 的东西:github.com/TheBushyBrow/smartsheet_test
  • 您是否通过终端/cmd 使用node main.js 启动了文件?
  • 我确实运行了node main.js,我得到了{ id: 18949130974918340, email: 'email@gmail.com', firstName: 'John', lastName: 'lastnme', locale: 'en_US', timeZone: 'US/Pacific', account: { name: 'email@gmail.com (Developer)', id: 45884085350d45924 }, admin: true, licensedSheetCreator: true, groupAdmin: true, resourceViewer: true, alternateEmails: [] }
  • 您需要做的:1) 设置 Express 服务器 2) 在服务中定义您需要从客户端调用的路径/URL。 3)编写一个前端应用程序并向您定义的路径发出请求。看看这个tutorialspoint.com/nodejs/nodejs_express_framework.htm

标签: javascript node.js smartsheet-api


【解决方案1】:

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

【讨论】:

  • 注意:这样做会排除使用 ES6 样式模块
  • 但是现在不能加载其他模块了?现在我收到“无法在模块外使用导入语句”错误
【解决方案2】:

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

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

为我工作。

【讨论】:

    【解决方案3】:

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

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

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

    如果你确实想在客户端使用这样的调用,你可以使用CommonJSclient side-implementations

    【讨论】:

      【解决方案4】:

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

      这是来自RequireJS的介绍性说明。

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

      【讨论】:

        【解决方案5】:

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

        它对我有用!

        【讨论】:

          【解决方案6】:
          require() does not exist in the browser/client-side JavaScript
          

          更多信息Client on Node.js: Uncaught ReferenceError: require is not defined

          【讨论】:

            猜你喜欢
            • 2019-08-20
            • 1970-01-01
            • 1970-01-01
            • 2017-11-23
            • 2020-12-26
            • 2022-02-19
            • 2019-04-15
            相关资源
            最近更新 更多