如何使用 module.exports 和 requireJS?

How to use module.exports and 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()

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

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

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

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

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

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

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