【问题标题】:Node | Require is not defined [duplicate]节点 |需求未定义[重复]
【发布时间】:2019-06-22 22:21:58
【问题描述】:

编辑:使用 webpack 解决的问题

为了 API 的需要,我需要导入 MD5moment。我使用基本的npm install 下载了这些软件包,但是当我尝试使用下面的代码在我的app.js 上导入它时:

const md5 = require ('./node_modules/md5/md5.js');
const moment = require ('./node_modules/moment/moment.js');

function getTimeStamp () {
    return moment.utc ().format ('YYYYMMDDHHmmss');
}
let timestamp = getTimeStamp ();

function generateSignature (devId, method, authKey, timestamp) {
    return md5 (`${devId}${method}${apiKey}${timestamp}`);
}
let signature = generateSignature (XXXX, "createsession", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", getTimeStamp ());

我在控制台中收到此消息:

Uncaught ReferenceError: require is not defined

我不知道自己做错了什么,因为我对另一个程序使用了相同的方法,并且效果很好......

提前致谢

【问题讨论】:

    标签: javascript node.js api


    【解决方案1】:

    您可能会看到此错误,因为浏览器/客户端 JavaScript 中确实 存在 require()。 如果你想在浏览器中使用require(),那么你需要使用require.js之类的东西

    RequireJS 是一个 JavaScript 文件和模块加载器。它针对 在浏览器中使用,但它可以在其他 JavaScript 环境中使用, 比如 Rhino 和 Node。

    PS:我同意cptwonton。请参阅上述帖子以获取具有各种可用选项的深入解决方案。

    【讨论】:

      【解决方案2】:

      试试这个:

      const md5 = require ("md5");
      const moment = require ("moment");
      

      【讨论】:

        【解决方案3】:

        require 在浏览器中不受支持,因为 Node 和 ES6 具有不同的模块系统。您是否尝试在浏览器中调用require?在这种情况下,我建议你设置 Babel。但是如果你使用node,那么尝试重新安装nodejs。

        【讨论】:

          猜你喜欢
          • 2019-03-13
          • 2021-04-04
          • 2014-09-23
          • 2020-11-19
          • 2018-07-14
          • 2015-04-03
          • 2020-07-24
          • 2017-03-08
          • 1970-01-01
          相关资源
          最近更新 更多