如何使用 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
调用中可用。
我是 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
调用中可用。