声明“如果要将导出对象设置为函数或新对象,则必须使用module.exports对象。”
我的问题是为什么。
// right
module.exports = function () {
console.log("hello world")
}
// wrong
exports = function () {
console.log("hello world")
}
我console.logged结果(result=require(example.js)
)和第[Function]
一个是{}
。
module
是具有exports
属性的普通JavaScript对象。exports
是一个普通的JavaScript变量,碰巧设置为module.exports
。在文件末尾,node.js基本上将“返回”module.exports
该require
函数。在Node中查看JS文件的一种简化方法是:
var module = { exports: {} };
var exports = module.exports;
// your code
return module.exports;
如果在上设置exports
,如exports.a=9;
,该属性也会设置module.exports.a
,因为对象是作为JavaScript中的引用传递的,这意味着如果将多个变量设置为同一对象,则它们都是同一对象;因此,exports
和module.exports
是相同的对象。
但是,如果你设置exports
新的东西,这将不再被设定为module.exports
,所以exports
并module.exports
不再是同一个对象。
在这个页面(http://docs.nodejitsu.com/articles/getting-started/what-is-require)中,它指出“如果您想将exports对象设置为函数或新对象,您必须使用Module.exports对象。” 我的问题是为什么。 I console.log结果(codeResult=require(example.js)/code>),第一个是 ,第二个
本文向大家介绍详解Node.js中exports和module.exports的区别,包括了详解Node.js中exports和module.exports的区别的使用技巧和注意事项,需要的朋友参考一下 今天看了下node.js的require方法的源码,终于搞清楚exports和module.exports的区别了。 我们知道,node.js的模块暴露有两种方法。 1. 方式一:用exports
本文向大家介绍详解Sea.js中Module.exports和exports的区别,包括了详解Sea.js中Module.exports和exports的区别的使用技巧和注意事项,需要的朋友参考一下 一、官方解释 exports require 从require导入方式去理解,关键有两个变量(全局变量module.exports,局部变量exports)、一个返回值(module.exports)
require 用来加载代码,而 exports 和 module.exports 则用来导出代码。 很多新手可能会迷惑于 exports 和 module.exports 的区别,为了更好的理解 exports 和 module.exports 的关系,我们先来巩固下 js 的基础。示例: test.js var a = {name: 1} var b = a console.log(a) c
require 用来加载代码,而 exports 和 module.exports 则用来导出代码。 很多新手可能会迷惑于 exports 和 module.exports 的区别,为了更好的理解 exports 和 module.exports 的关系,我们先来巩固下 js 的基础。示例: test.js var a = {name: 1}; var b = a; console.log(a)
问题内容: 我想知道这些摘要之间的区别是什么。 和 两者对我来说都可以正常工作,但不能确定它们背后的目的是什么。 问题答案: 考虑第一个片段,它是CommonJS样式的: 这些调用是同步调用:返回时,它将返回您请求的模块。CommonJS 调用是同步的。有一种支持异步形式的建议,但据我所知,它尚未超出建议级别。Node.js 曾经被删除过。有一个实现它的包。使用此程序包看起来很像使用AMD样式模块