NodeJS需要(' ..')?

时间:2017-02-22 19:58:33

标签: node.js require

我一直在查看一些NodeJS示例,但我遇到了以下情况:

var module = require('..');
var module = require('../');

我明白需要做什么,但我不明白它写的是这样做的。有人可以向我解释一下吗?

3 个答案:

答案 0 :(得分:3)

This is the rule defined in https://nodejs.org/api/modules.html

  

要求(X)来自路径Y的模块

     
      
  1. 如果X以' ./'开头;或者' /'或' ../&# 39;
      一个。 LOAD_AS_FILE(Y + X)
      湾LOAD_AS_DIRECTORY(Y + X)
  2.   

由于../..不是文件,因此它将转到路径B,作为目录加载

  

LOAD_AS_DIRECTORY(X)

     
      
  1. 如果X / package.json是文件,则   一个。解析X / package.json,并查找" main"场。
      湾设M = X +(json主场)
      C。   LOAD_AS_FILE(M)
  2.   
  3. 如果X / index.js是文件,请将X / index.js作为JavaScript文本加载。 STOP
  4.   
  5. 如果X / index.json是一个文件,则将X / index.json解析为JavaScript对象。 STOP
  6.   
  7. 如果X / index.node是文件,请将X / index.node加载为二进制插件。 STOP
  8.   

按照该规则,它将按此顺序检查以下文件

1)../package.json

2)../index.js

3)../index.json

4)../index.node

答案 1 :(得分:2)

如果您需要目录,require将尝试根据以下规则包含该目录中的模块:

  

如果X / package.json是文件,则     一个。解析X / package.json,并查找“main”字段     湾设M = X +(json主场)
    C。 LOAD_AS_FILE(M)
  2.如果X / index.js是文件,请将X / index.js作为JavaScript文本加载。 STOP
  3.如果X / index.json是文件,则将X / index.json解析为JavaScript对象。 STOP
  4.如果X / index.node是文件,则将X / index.node加载为二进制插件。停止

您很可能有一个如下所示的目录结构:

module/
  index.js
  src/
    file-including.js

这将加载index.js。您也可以将其写为require('../index.js')甚至require('../index'),它的功能也相同。

答案 2 :(得分:0)

使用var module = require('..');var module = require('../');的结果相同。

都是从父目录加载的。