Node.js后端开发 - 基础篇 #18 nodemon工具

文章目录

前言

nodemon工具简单介绍

nodemon工具安装

nodemon工具使用(node app、nodemon app)

nodemon工具使用(npm run start)


前言

上篇文章我们讲了nodejs的package.json 文件,它里面的内容是什么?它有什么作用?详细可参考博文:Node.js后端开发 - 基础篇 #17 package.json 文件,这篇文章我们讲讲nodejs的nodemon工具,它有什么作用呢?

nodemon工具简单介绍

我们以前写nodejs项目代码的时候,每改写一个功能就把服务器重新启动一次,就是运行node app这个命令,这样会很麻烦的!我们不应该这么做,我们应该让这个服务器自动重启,就是每当我们代码改变的时候,它会自动的重启,nodemon就提供了这样的功能,它会监控你所有的文件, 你的文件每当被改变,也就是说你的代码变化的时候,这个服务器就会自动重新重启,也就是说你不用手动把它关掉然后再重新启动,我们可以参考的官网:nodemon - npm,这个工具的使用是非常简单的,直接把它先安装下来,然后用nodemon代替node命令就可以了!nodemon的功能是很强大的,它还可以设置一些其他的参数,还有一些不同的功能,我们这里只是简单介绍,至于其它功能可以去参考官方文档。

nodemon工具安装

我们执行 npm install -g nodemon 进行安装,这个-g 即 -global 意思就是全面的、全局的,

$ npm install -g nodemon
/Users/luminal/.nvm/versions/node/v10.16.0/bin/nodemon -> /Users/luminal/.nvm/versions/node/v10.16.0/lib/node_modules/nodemon/bin/nodemon.js

> fsevents@1.2.9 install /Users/luminal/.nvm/versions/node/v10.16.0/lib/node_modules/nodemon/node_modules/fsevents
> node install

node-pre-gyp WARN Using needle for node-pre-gyp https download 
[fsevents] Success: "/Users/luminal/.nvm/versions/node/v10.16.0/lib/node_modules/nodemon/node_modules/fsevents/lib/binding/Release/node-v64-darwin-x64/fse.node" is installed via remote

> nodemon@1.19.2 postinstall /Users/luminal/.nvm/versions/node/v10.16.0/lib/node_modules/nodemon
> node bin/postinstall || exit 0

Love nodemon? You can now support the project via the open collective:
 > https://opencollective.com/nodemon/donate

+ nodemon@1.19.2
added 289 packages from 144 contributors in 36.173s

nodemon工具使用(node app、nodemon app)

我们上几篇文章,启动代码都是这样运行的:

$ node app
Server started on localhost port 3000

现在我们安装了nodemon工具,我们可以这样运行:

$ nodemon app
bash: nodemon: command not found

$ nvm list
       v10.16.0
        v12.6.0
->       system
node -> stable (-> v12.6.0) (default)
stable -> 12.6 (-> v12.6.0) (default)
iojs -> N/A (default)
lts/* -> lts/dubnium (-> v10.16.0)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.16.0 (-> N/A)
lts/dubnium -> v10.16.0

$ nvm use v10.16.0
Now using node v10.16.0 (npm v6.9.0)

$ nodemon app
[nodemon] 1.19.2
[nodemon] to restart at any time, enter `rs` 
[nodemon] watching dir(s): *.* 
[nodemon] starting `node app.js`
Server started on localhost port 3000

nvm命令我简单说下,因为我电脑中安装了不同版本的node,它通过nvm来管理。所以要执行 nvm list、nvm use v10.16.0命令来切换到正在使用的node版本上,否则会报错:bash: nodemon: command not found

我们执行 nodemon app命令以后,它就会监控项目的所有目录或文件,然后自动重新启动。另外在运行 nodemon命令的终端上,你试着输入 rs,然后回车,会手动重启哦,当你不是改 js 文件的时候,比如只改 html 文件,这个方法不错。

当我们改变项目里面的代码,如我改变app.js的代码,注释了:  handle["/"] = handler.home;

var server = require('./server');
var router = require('./router');
var handler = require('./handler');

var handle = {};
//handle["/"] = handler.home;
handle['/home'] = handler.home;
handle['/review'] = handler.review;
handle['/api/v1/records'] = handler.api_records;

server.startServer(router.route, handle);

nodejs服务器终端自动输出了如下的信息

[nodemon] 1.19.2
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): *.*
[nodemon] starting `node app.js`
Server started on localhost port 3000

//改变项目代码以后,终端自动输出了如下的信息
[nodemon] restarting due to changes...
[nodemon] starting `node app.js`
Server started on localhost port 3000

这个你可以在浏览器输入地址再进行测试看效果,页面访问不到了!说明nodejs服务端自动重启更新了!

nodemon这个工具还是不错的,我们在开发环境中可以使用,当然在生产环境我们就不要用这个工具了,因为我们每次改代码它都会重新启动,生产环境没必要老改代码重新启动!

nodemon工具使用(npm run start

我们也可以把上篇文章讲到的package.json文件的,scripts 字段的启动命令改成 "start": "nodemon app.js" 

  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon app.js"
  },

这时候 npm run start 启动项目,就会变成如下这样

$ npm run start

> hello-nodejs@1.0.0 start /Users/luminal/Desktop/nodejs/hello-nodejs
> nodemon app.js

[nodemon] 1.19.2
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): *.*
[nodemon] starting `node app.js`
Server started on localhost port 3000

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

被开发耽误的大厨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值