网站首页 > 基础教程 正文
如前几文所讲,在nodejs中,可以用exefile、spwan调用外部程序。但nodejs还提供有更方便活灵且跨平台的方式:exec。
我们来体验一下它的魅力:
上一节外部应用程序的串联调用中,代码是这样的:
var cp = require("child_process"); var netstat = cp.spawn("netstat",["-an"]); var echo = cp.spawn("cmd",["echo"]); netstat.stdout.pipe(echo.stdin); echo.stdout.pipe(process.stdout);
理解起来稍有点绕,而通过exec,可以简化这段代码,成为:
var cp = require("child_process"); cp.exec("echo | netstat -an",function(err,stdout,stderr){ if(err){ console.error(err); } console.log("stdout:",stdout) console.log("stderr:",stderr); });
而执行效果:
差异嘛,当然是有的,exec是非实时同步执行。
再来看一下例子,之前讲execFile时,如果直接调用dir,是不能成功的:
var cp = require("child_process"); cp.execFile("dir",function(err,stdout,stderr){ if(err){ console.error(err); } console.log("stdout:",stdout) console.log("stderr:",stderr); });
执行会报错:
但如果改成exec则可以:
也就是execFile无法调用cmd中的dir指令,而exec可以。
更多本系列文章:
猜你喜欢
- 2024-11-25 Deno 1.30 正式发布
- 2024-11-25 用 WasmEdge 和 Rust 在边缘云上构建高性能且安全的微服务
- 2024-11-25 通过浏览器工作台启动本地项目
- 2024-11-25 r2frida:基于Frida的远程进程安全检测和通信工具
- 2024-11-25 NPM 使用介绍
- 2024-11-25 使用Hexo在github上搭建静态博客
- 2024-11-25 Android动态调试(1)-Radare2和lldb
- 2024-11-25 Metasploit渗透测试之MSFvenom
- 2024-11-25 浅析CTF中的Node.js原型链污染
- 2024-11-25 首个SSRF漏洞开篇学习
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)