NodeJS用法需要('../');

时间:2015-11-19 05:33:47

标签: node.js

我正在学习NodeJs,偶然发现了这行代码:

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

我无法弄清楚装载的是什么。我可以看到变量的使用位置和调用函数。

我了解如何在加载特定文件时使用require语句。

如果有人能说出一些亮点,我们将不胜感激。

感谢。

3 个答案:

答案 0 :(得分:4)

来自Node's documentation on Modules

require(X) from module at path Y
1. If X is a core module,
   a. return the core module
   b. STOP
2. If X begins with './' or '/' or '../'
   a. LOAD_AS_FILE(Y + X)
   b. LOAD_AS_DIRECTORY(Y + X)
3. LOAD_NODE_MODULES(X, dirname(Y))
4. THROW "not found"

LOAD_AS_FILE(X)
1. If X is a file, load X as JavaScript text.  STOP
2. If X.js is a file, load X.js as JavaScript text.  STOP
3. If X.json is a file, parse X.json to a JavaScript Object.  STOP
4. If X.node is a file, load X.node as binary addon.  STOP

LOAD_AS_DIRECTORY(X)
1. If X/package.json is a file,
   a. Parse X/package.json, and look for "main" field.
   b. let M = X + (json main field)
   c. LOAD_AS_FILE(M)
2. If X/index.js is a file, load X/index.js as JavaScript text.  STOP
3. If X/index.json is a file, parse X/index.json to a JavaScript object. STOP
4. If X/index.node is a file, load X/index.node as binary addon.  STOP

LOAD_NODE_MODULES(X, START)
1. let DIRS=NODE_MODULES_PATHS(START)
2. for each DIR in DIRS:
   a. LOAD_AS_FILE(DIR/X)
   b. LOAD_AS_DIRECTORY(DIR/X)

NODE_MODULES_PATHS(START)
1. let PARTS = path split(START)
2. let I = count of PARTS - 1
3. let DIRS = []
4. while I >= 0,
   a. if PARTS[I] = "node_modules" CONTINUE
   c. DIR = path join(PARTS[0 .. I] + "node_modules")
   b. DIRS = DIRS + DIR
   c. let I = I - 1
5. return DIRS

require('../')运行父目录的LOAD_AS_DIRECTORY(X)部分。

答案 1 :(得分:0)

为简单起见,请记住,如果您不指定文件而是指定目录,则它将是将加载的index.js文件。

在目前的情况下,我们要求../将加载上层目录的索引。

答案 2 :(得分:-1)

它可能是用于JS的InRule SDK(http://www.inrule.com/products/inrule-for-javascript/),可用于将业务逻辑与应用程序逻辑分离。

或者,它可能是npm'node-irsdk'软件包,它似乎是某种类型的遥测软件包,它增强了现有的“utils”模块。 (https://www.npmjs.com/package/node-irsdk

无论哪种方式,您都可以通过字面记录变量将其注销到控制台以获取有关它的更多信息。

console.log(irsdk);
//or
console.dir(irsdk);
//both must be called AFTER you instantiate the var irsdk = req.....