markdown node.md

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown node.md相关的知识,希望对你有一定的参考价值。

# module.exports 和 exports关系
```javascript
module.exports === exports //true
```
> 那为什么 `module.exports = {}`可以,而`exorts = {}`在 `require()`是就不行呢?  
> 1. node 中 默认  `var exports = module.exports`  
> 2. 默认在末行有 `return module.exports`   

*`exports`仅仅是`module.exports`的一个引用,如果给exports单独赋其他的值,那么他们之间的
关系就会断掉,末行`return module.exports`跟`exports`没有了关系,所以不能单独给`exports`
赋值。*

# require加载同一文件,只会执行一次(从缓存中取)
> 现有**a.js**,  
**b.js** ,  
**c.js**  
> 在**a.js**中引用**b.js**和**c.js**,在**b.js**中引用**c.js**,那么  
  * **c.js** 中的内容只会执行一次,而a.js中可以获取c.js的引用结果
  
# node中require('xxx')是怎么查找文件的?
>> 'xxx'文件名的话可能是核心模块或者是第三方模块,如果是'./xxx'形式,则是自己写的模块.
> 1. 看是不是核心目录,是的话加载
> 2. 不是核心目录,到 node_modules中查找,如果找到再去`package.json`中查找`main`属性的值,
根据这个值去加载文件。
> 3. 如果`package.json`或者`main`属性不存在或错误,就默认加载`index.js`
> 4.如果`index.js`不存在,就到上一级的`node_models`查找,这样一直查找到
根目录下的`node_models`,如果还没找到,就报错。
> 5. './xxxx'形式就按相对路径查找。***注:***自己写的必须袋路径。

以上是关于markdown node.md的主要内容,如果未能解决你的问题,请参考以下文章

markdown node-project-structure.md

markdown node-mongo-mongoose.md

markdown legit-node-packages.md

Azure 存储 Node.js SDK - MD5 哈希与本地不同

在 Windows cmd 中使用 $NODE_ENV 和 if 条件

Markdown温故知新:Markdown面面观