导航:首页 > 程序命令 > nodejs执行命令

nodejs执行命令

发布时间:2022-09-02 02:20:33

Ⅰ 在nodejs代码中怎么执行node app

1、直接运行run.bat文件
下面的内容为批处理文件run.bat中的内容,批处理命令中NODE_PATH为Node.js的安装路径。使用express 生成的项目。app.js为待测试的Node.js 文件。
@set NODE_PATH=D:\nodejs\demo\npm
@echo %PATH% | find "Node.js"
@if %errorlevel% == 1 set PATH=%PATH%;%NODE_PATH%
@rem @echo %cd%
@node app.js
2、通过参数运行run.bat文件
批处理文件仅起到设置环境变量的作用,在Node.js项目的目录下运行。批处理文件命令为:
@set NODE_PATH=D:\nodejs\demo\npm
@echo %PATH% | find "Node.js"
@if %errorlevel% == 1 set PATH=%PATH%;%NODE_PATH%
@rem @echo %cd%
@node %1
例如:
D:\nodejs\demo\>node app.j

Ⅱ 手把手教你使用nodejs编写cli(命令行)

前端日常开发中,会遇见各种各样的cli,比如一行命令帮你打包的webpack,一行命令帮你生成vue项目模板的vue-cli,还有创建react项目的create-react-app等等等等。这些工具极大地方便了我们的日常工作,让计算机自己去干繁琐的工作,而我们,就可以节省出大量的时间用于学习、交流、开发、 逛steam 。

但是有时候一些十分特别的需求,我们是找不到适合的cli工具去做的。比如说,你的项目十分庞大,你给项目添加一个新的路由,要经过 创建目录 -> 创建.vue文件 -> 更新vue-router的路由列表 这一趟流程,就算快捷键创建目录文件用得再熟悉,也比不过你一行命令来得快,特别是路由目录嵌套深,.vue文件初始化模板复杂的时候。

所以呢,何不为自己项目写一个cli?就专门做这些繁琐的活?

nodejs的cli,本质就是跑node脚本嘛,基本上每位前端er都会:

然后命令行调用

可以做得更逼真一点,我们在package.json里面的scripts字段上添加一下脚本名:

然后命令行调用:

但是,看到这里你肯定会说,人家webpack还有vue-cli都是“有名字”的!什么 vue-cli init app 、 webpack -p 的,多漂亮,看看这个命令行, node index.js ,还 npm run hello ,谁不会啊,丑不拉几的,怕又不是来水文章的哦?差评!!

别急啊各位大人,接下来就说说,如何给这个node脚本起个名字。

姑且,先把这个cli的名字命名为 hello-cli ,就是我们能够在命令行里面,输入 hello-cli ,然后它就打印一句 hello world ,没有 node 也没有 npm ,就是:

这样,你的第一个cli脚本就成功安装了,可以在命令行里面,直接敲你的cli名字,看看结果输出吧。

另外,如果你仅希望你的cli脚本仅在项目里执行,则需要在你项目里面新建一个目录,重复上述的操作,只是在第三步的时候,不要llink到全局里面去,而是使用 npm i -D file:<你的脚本cli目录路径> ,把它当成项目的依赖安装到node_moles里面去,如果安装成功,那么在项目的package.json你会看到多了一条依赖,这条依赖的值不是版本号,而是你脚本的路径。然后在node_moles里面会有一个.bin目录,里面就存放着你的可执行文件。

当然,这样安装的cli脚本,必须在项目的package.json的scripts字段上声明脚本命令,然后通过 npm run 的方式执行。

哦?这样子使用的话不就回到最最最开始的时候那种原始的 npm run hello 一样么。

是的,但是有质的区别。使用 node index.js 这种方式调用的话固然简单灵活,但是严重依赖脚本路径,一旦目录结构发生变动,写在scripts的命令就要更改一次;但是使用npm安装之后,本地的cli脚本就被拉到node_moles里面,目录结构变动对其影响不大。其次是不利于分享与发布,如果你想把你的cli脚本发布出去,那么有一个好听响亮的名字,比起在说明文档里面告诉使用者如何找到你的脚本路径再用node执行它,简直好上那么一万倍不是么?

这里也给我们提供了一个cli开发流程思路:

名字有了,输出也有了,看看我们跟那些大名鼎鼎的cli工具,在形式上还差点啥?对了,人家可以支持不同参数选项的,还可以根据输入的不同,产生不同的结果。

这样吧,我们给这个cli加一个功能,既然叫 hello-cli ,那不能只会 hello world 吧,必须要见谁就说 hello 才行:

虽然这个功能很简单,但是至少也是实现了“根据输入的不同,产生不同结果”的效果。

命令行上的参数,可以通过 process 这个变量获取, process 是一个全局对象而不是一个包,不需要通过 require 引入。通过 process 这个对象我们可以拿到当前脚本执行环境等一系列信息,其中就包括命令行的输入情况,这个信息,保存在 process.argv 这个属性里。我们可以打印一下:

打印结果:

可以看出,argv是个数组,前两位是固定的,分别是node程序的路径和脚本存放的位置,从第三位开始才是额外输入的内容。那么实现上面的功能就很简单了,只要读取argv数组的第三位,然后输出出来就可以了。

npm社区中也有一些优秀的命令行参数解析包,比如 yargs ,tj的 commander.js 等等

如果你想使用比较复杂的参数或者命令,建议还是用第三方包比较好,手写解析太耗精力了。

现在,你可以自由自在的写你自己的cli脚本了。
如果你希望写一个项目打完包自动推上git的cli,或者自动从git仓库里面拉取项目启动模板,那么,你需要通过node的 child_process 模块开启子进程,在子进程内调用git命令:

不仅是git命令,包括系统命令、其他cli命令都可以在这里执行。特别是系统命令,使用系统命令对文件目录进行操作,效率比fs高到不知道哪里去了。

社区上也有一些不错的包,比如阮一峰老师推荐的 shelljs

如果你不那么希望你的cli用起来那么“硬核”,希望更人性化一点,比如提供一些友好的输入、提示啊,给你的输出加点颜色区分重点啊,写个简单的进度条啊等等,那么你就需要美化一下你的输出了。

除了颜色这部分,不使用第三方包实现起来非常繁琐复杂,其他的功能,都可以试试自己写。
颜色部分使用了第三方包 colors ,这里就不演示了。
其他都是由nodejs自带的 readline 模块实现的。

绘制的思路跟canvas绘制动画一样,只不过canvas是清除画布,而命令行这里是通过 readline.clearScreenDown 清除输出。

这样,一个简易的,人性化的,带点点进度条动画的命令行cli工具就写好了,你也可以发挥你的想象力,去写一些更有趣的效果出来。

毕竟我们前端,有浏览器我们可以写动画,没了浏览器我们一样可以写动画。

Ⅲ 在nodejs的command prompt中执行node进入命令交互模式后怎么退出

您好,我来为您解答:
推出node命令行:两次ctrl+C或者一次ctrl+D
退出终端:exit;
(经测试,都没什么问题)
快捷键是ctrl+d或者输入.exit,在node下输入.help你会看到一个命令清单,里边介绍了常用命令。
希望我的回答对你有帮助。

Ⅳ 如何用命令行开启nodejs搭建web服务器

首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本。

安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。


本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。


开始
下一步,新建js文件,可以命名为server.js,代码如下:
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
var dir, arg = process.argv[2] || ''; // 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称


// 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级
// 且你想以debug文件夹启动web服务



http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname;

Ⅳ 如何调试nodejs

1. 基于Nodejs内建的调试器
Nodejs提供了一个内建调试器来帮助开发者调试应用程序。想要开启调试器我们需要在代码中加入debugger标签,当Nodejs执行到debugger标签时会自动暂停(debugger标签相当于在代码中开启一个断点)。代码如下:
var path = url.parse(req.url).pathname;
debugger;
res.writeHead(200, {'Content-Type': 'text/plain'});
执行命令:node debug example.js 就可以进入调试模式。

在debug模式下,可以使用内建命令如repl去评估变量和表达式的值(如2所示)。我们也可以通过help命令来获取完整的调试命令列表。
Commands: run (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb),
watch, unwatch, watchers, repl, restart, kill, list, scripts, breakpoints, version

2. 基于V8插件的调试器
Nodejs是基于google V8的引擎上构建的,Google为Eclipse提供了一个对应的调试插件。关于如何在Eclipse中安装和调试Nodejs程序就不再重复描述了,网上已经有很多的文章了(具体可以参考这篇文章http://cnodejs.org/blog/?p=911)。唯一要注意的是在默认情况下V8引擎支持的调试模式是本地模式。如果想要开启远程调试的话,我们需要修改Nodejs中的V8源文件:/deps/v8/src/platform-posix.cc
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); --> INADDR_ANY
addr.sin_port = htons(port);
然后重新编译Nodejs。
提示:
用插件来调试nodejs程序,你有时候会遇到什么connect refuse, get version failed等等错误。那么请注意你使用的ip的地址, 一般下127.0.0.1的回环地址是都工作的。如果你使用真实的ip地址,请检查防火墙设置。

3. 基于Chrome浏览器的调试器
既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?node-inspector模块提供了这样一种可能。我们需要先通过npm来安装node-inspector
npm install -g node-inspector // -g 导入安装路径到环境变量

node-inspector是通过websocket方式来转向debug输入输出的。因此,我们在调试前要先启动node-inspector来监听Nodejs的debug调试端口。

默认情况下node-inspector的端口是8080,可以通过参数--web-port=[port]来设置端口。在启动node-inpspector之后,我们可以通过--debug或--debug-brk来启动nodejs程序。通过在浏览器输入http://[ip address]:8080/debug?port=5858,我们会得到如下的调试窗口:

这三种方法各自有优缺点,我个人比较欣赏node-inspector的方式。
具体可以参考这个帖子:http://www.cnblogs.com/moonz-wu/archive/2012/01/15/2322120.html

Ⅵ win7下 怎么通过运行命令行快速启动nodejs

Node.js是一个轻松构建快速,可扩展的网络应用平台建立在Chrome的JavaScript运行。Node.js使用事件驱动,非阻塞I/O模型,使得它重量轻,高效,完美的数据密集型实时应用程序运行在分布式设备。在Windows上安装 Node.js很方便,只需要访问node.js
1、node_moles只是放一些依赖包,具体数据库文件当然是放在mysql目录下了。
2、要在不开编辑器前提下,使系统可访问,你只要在控制台中定位到你系统的目录后,使用node命令来启动即可。

Ⅶ nodejs 在 android 系统里面怎么运行

每种语言都有自己的优势,互相结合起来各取所长程序执行起来效率更高或者说哪种实现方式较简单就用哪个,nodejs是利用子进程来调用系统命令或者文件,文档见nodejs.org/api/child_process.html,NodeJS子进程提供了与系统交互的重要接口,其主要API有:标准输入、标准输出及标准错误输出的接口。NodeJS子进程提供了与系统交互的重要接口,其主要API有:标准输入、标准输出及标准错误输出的接口child.stdin获取标准输入child.stdout获取标准输出child.stderr获取标准错误输出获取子进程的PID:child.pid提供生成子进程的方法:child_process.spawn(cmd,args=[],[options])提供直接执行系统命令的方法:child_process.exec(cmd,[options],callback)提供调用脚本文件的方法:child_process.execFile(file,[args],[options],[callback])提供杀死进程的方法:child.kill(signal='SIGTERM')用实例来感受一下,很有意思的,呵呵~~1、利用子进程调用系统命令(获取系统内存使用情况)新建nodejs文件,名为cmd_spawn.js,代码如下:复制代码代码如下:varspawn=require('child_process').spawn;free=spawn('free',['-m']);//捕获标准输出并将其打印到控制台free.stdout.on('data',function(data){console.log('standardoutput:\n'+data);});//捕获标准错误输出并将其打印到控制台free.stderr.on('data',function(data){console.log('standarderroroutput:\n'+data);});//注册子进程关闭事件free.on('exit',function(code,signal){console.log('childprocesseixt,exit:'+code);});

Ⅷ 如何基于nodejs开发一个命令行工具

效果预览

npmuninstall-gzwj

然后再安装即可。

发布与升级

当我们的工具开发完成后,如何发布到社区,如何提供给其他开发者使用,这是我们的最后一步。npm包的发布很简单,原本只需要在包根目录执行:npm publish命令即可。但如果你是第一次发布应用,需要解决好账号登录的问题:先执行npm adser命令,依次输入用户名、密码和邮箱登录,然后通过npm whoami命令确认登录是否成功。万事俱备之后,再执行npm publish命令,你的包就可以发布到社区与众多开发者共享了!

最后,升级就简单了。本地增加好新的功能,测试通过之后,修改版本号之后,执行:npm publish等待完成即可。

PS:最好给每个包都增加一个README.md文件,写入包的作用,使用方法,更新日志等等。方便使用者查阅。完美~~

阅读全文

与nodejs执行命令相关的资料

热点内容
第一眼解压视频 浏览:725
文件夹err是什么 浏览:96
qt4编程pdf 浏览:571
局域网服务器下如何连续看照片 浏览:254
经过加密的数字摘要 浏览:646
加密锁9000变打印机 浏览:694
程序员的职业发展前途 浏览:639
安卓是世界上多少个程序员开发 浏览:45
解压器官方免费 浏览:85
单片机p10开发 浏览:487
做什么app赚钱 浏览:84
博途编译失败联系客户支持部门 浏览:928
金蝶旗舰版编译 浏览:51
万象服务器断电后启动不了怎么办 浏览:357
我的世界苹果版的2b2t服务器地址咋查 浏览:97
xlsx转换pdf 浏览:102
3dmax挤出命令英语 浏览:906
靶心率的定义和算法 浏览:516
3d模术师app哪里下载 浏览:476
php中文api文档 浏览:460