node黑魔法js操作命令行的方法续

前言

之前向朋友们介绍过使用shelljs这个包来对命令行进行操作。其实在nodejs中提供了更加优雅的方法来帮助我们对命令行进行操作。现在就可以使用child_process作为关键字进行查询。他是nodejs原生支持的一个模块,作用是开始一个子进程。使用这个模块中的exec方法就可以运行某些指令了。但是呢要注意,这里是异步的,如果你要封装一个调用的函数,不一定可以直接运行出值。这的处理办法是:使用回调函数或者使用Promise。

代码示例

这里直接上一个封装了Promise的代码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//使用SE 的写法封装一个git的命令
var cp = require("child_process")
export function gitStatus(directory){
var comd = "git status"
//返回了一个Promise对象
return new Promise(function(resolve,reject){
cp.exec(comd,{cwd:directory},function(error,stdout,stderr){
if(error){
//返回报错信息
reject(stderr)
}else{
//返回命令行输出
resolve(stdout)
}
});
})
}

简单的解释一下代码里的内容。其中exec()是运行一个函数的意思。其中的第二个参数cwd是命令运行的文件夹。然后这返回了一个Promise对象。这样就优雅的解决的调用时异步的问题。也就是说在使用的时候使用.then()的写法就可以了。

后记

当然如果你是一个js的新手或许没有理解我说的。这里主要涉及了三个知识点。现在分别献上传送门。

我将一直的迷惑与无知,我是黄油香蕉君,再见。

给作者买杯咖啡吧。喵~