如何使用module.exports和requireJS?

如何使用module.exports和requireJS?,module,requirejs,Module,Requirejs,我在html和js方面是个不折不扣的家伙,所以如果这是一个愚蠢的问题,请原谅我,但是,我试图使用requireJs导出节点中的模块,我无法让函数正常工作。 下面是从示例中提取的代码 首先,我有一个main.js,如文档中的注释所示 以及导出答案的hellives.js module.exports= 'Hello'; }); 结果什么也得不到,所以我定义了导出和模块 define( function(exports,module){ module.exports= 'Hello';

我在html和js方面是个不折不扣的家伙,所以如果这是一个愚蠢的问题,请原谅我,但是,我试图使用requireJs导出节点中的模块,我无法让函数正常工作。 下面是从示例中提取的代码

首先,我有一个main.js,如文档中的注释所示

以及导出答案的hellives.js

 module.exports= 'Hello';
    });
结果什么也得不到,所以我定义了导出和模块

define( function(exports,module){
module.exports= 'Hello';
});
结果是:

function localRequire()

我做错了什么?我阅读了文档和示例,但不知何故我无法做到这一点。

我假设您使用的
require
调用是RequireJS的
require
调用,而不是Node的
require
。(否则,您将得到完全不同的结果。)

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

require(['./greetings.js'], function(sayHi){
  console.log(sayHi);
}); 
但是,由于您正在节点中运行,因此可以执行以下操作:

var sayHi = require('./greetings.js'); 
请注意,第一个参数是字符串,而不是依赖项数组。这是
require
调用的同步形式。返回的值是您需要的模块。当您在节点中时,RequireJS允许您在任何地方调用此同步表单。运行浏览器时,它仅在
define
调用中可用

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