节点 |未定义“要求”



编辑:使用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

我不知道我做错了什么,因为我在另一个程序中使用了相同的方法并且它运行良好......

提前致谢

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

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

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

试试这个:

const md5 = require ("md5");
const moment = require ("moment");
<</div> div class="one_answers">浏览器中不支持

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

最新更新