当我们打电话:
var p = require(child_process);
我们是否已经在创建子流程? (如果没有,这里的p是什么?)
为了解释我的混乱,在我拿起的代码库中,我看到:
var childProcess1 = require("child_process"); var _retrieveChild = childProcess1.fork( __dirname + '/backgroundProcesses/DadProcess',{ execArgv: ['--debug=5859'] } );
解决方法
需要模块有时可以初始化模块,所以不要对不知道感到不快.他们都是不同的.但是,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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。