如何使用module.exports和requireJS?

时间:2017-05-12 13:01:05

标签: module requirejs

我是html和js中的一个菜鸟,所以请原谅我,如果这是一个愚蠢的问题但是,我试图使用requireJs导出节点中的模块,我不能使该功能正常工作。 这是从示例中提取的代码。

首先我有这个main.js,正如文档中的说明http://requirejs.org/docs/node.html#2

var sayHi = require(['./greetings.js'], function(){}); 
console.log(sayHi);

和导出答案的greetings.js

 module.exports= 'Hello';
    });

并没有得到任何结果,所以我定义了导出和模块

define( function(exports,module){
module.exports= 'Hello';
});

得到结果:

function localRequire()
我在做错了什么?我阅读了文档和示例,但不知怎的,我无法做到这一点。

1 个答案:

答案 0 :(得分:2)

我假设您正在使用的require来电是RequireJS的require来电,而不是节点的require。 (否则,你会得到一个非常不同的结果。)

您正在使用require调用的异步形式。使用异步表单,没有返回值供您使用,您必须使用回调来获取模块值,如下所示:

require(['./greetings.js'], function(sayHi){
  console.log(sayHi);
}); 

但是,因为您在Node中运行,所以可以这样做:

var sayHi = require('./greetings.js'); 

注意第一个参数是字符串,而不是依赖项数组。这是require调用的同步形式。返回的值是您需要的模块。当您在Node中时,RequireJS允许您在任何地方调用此同步表单。当您运行浏览器时,它仅在define电话中可用。