节点|需求未定义

时间:2019-01-29 17:57:07

标签: javascript node.js api

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

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

预先感谢

3 个答案:

答案 0 :(得分:3)

您可能会看到此错误,因为在浏览器/客户端JavaScript中不存在require()。 如果要在浏览器中使用require(),则需要使用类似require.js

  

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

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

答案 1 :(得分:0)

尝试一下:

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

答案 2 :(得分:0)

浏览器不支持

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