node.js – require(“child_process”)实际上做了什么?

当我们打电话:

var p = require(child_process);

我们是否已经在创建子流程? (如果没有,这里的p是什么?)

为了解释我的混乱,在我拿起的代码库中,我看到:

var childProcess1 = require("child_process");
var  _retrieveChild = childProcess1.fork(
           __dirname + '/backgroundProcesses/DadProcess',{ execArgv: ['--debug=5859'] }
        );

我问自己,是否正在从子进程创建另一个进程,或者childProcess1只是一个严重的名称

解决方法

需要模块有时可以初始化模块,所以不要对不知道感到不快.他们都是不同的.但是,child_process不会像完成任务那样需要模块来创建进程.您必须调用 fork()spawn()(或exec())来实际创建新进程(和PID).

如果查看文档,您可以看到他们有时会使用这种语法:

var spawn = require('child_process').spawn;
// ...
spawn('ps',['ax']);

它基本上抓住了模块API,然后是生成方法,并将其别名为局部变量,以便稍后在代码中使用.

编辑

为了便于您理解,只需在Node模块内部,模块决定要“导出”的内容.无论它输出什么,都将从require(…)调用返回.例如,如果我们有这个模块:

// foo.js
module.exports = function() {
    return "bar";
};

然后require(“foo”)会给我们一个函数(但它还没有被调用):

var mymodule = require("foo");
var result = mymodule(); // <-- this calls the function returned via module.exports
console.log(result); // "bar"

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...