nodejs入门之后台服务的几种启动方式

栏目: Node.js · 发布时间: 5年前

内容简介:最近工作项目有调整,需要熟悉一些前端的内容,就顺便看看node,同时边学习边总结一下。如果使用node搭建后台服务,可以直接使用http创建一个服务器对象,也阔以选择Express框架。如果只是想使用node搭建一个简单的server,可以参考这里因为我们只是示例几种启动方式,因此就选择了最简单的demo,示例所有代码参照这是最常见的启动方式

背景信息

最近工作项目有调整,需要熟悉一些前端的内容,就顺便看看node,同时边学习边总结一下。如果使用node搭建后台服务,可以直接使用http创建一个服务器对象,也阔以选择Express框架。如果只是想使用node搭建一个简单的server,可以参考 https://github.com/bihe0832/node-demo/tree/master/http

这里因为我们只是示例几种启动方式,因此就选择了最简单的demo,示例所有代码参照 https://github.com/bihe0832/node-demo/tree/master/setup

几种启动方式

node 启动

这是最常见的启动方式

  • 命令:

    node 入口js

  • 事例:

    ➜  setup git:(master) ✗ node server.js
      Server running at http://127.0.0.1:3000/
  • 备注:

    使用node启动服务以后,应用程序的每次修改都需要停掉服务以后重启。

nodemon 启动

nodemon用来监视node.js应用程序中的任何更改并自动重启服务,非常适合用在开发环境中。

  • 命令:

    nodemon 入口js

  • 事例:

    ➜  setup git:(master) ✗ npm install nodemon
      npm WARN deprecated duplexer3@0.1.4: Sadly, duplexer3 is no longer with us. It will be missed.
    	
      > nodemon@1.18.9 postinstall /temp/1/node-demo/setup/node_modules/nodemon
      > node bin/postinstall || exit 0
    	
      npm WARN saveError ENOENT: no such file or directory, open '/temp/1/node-demo/setup/package.json'
      npm WARN enoent ENOENT: no such file or directory, open '/temp/1/node-demo/setup/package.json'
      npm WARN setup No description
      npm WARN setup No repository field.
      npm WARN setup No README data
      npm WARN setup No license field.
    	
      + nodemon@1.18.9
      added 223 packages from 130 contributors and audited 2238 packages in 11.378s
      found 0 vulnerabilities
    
      ➜  setup git:(master) ✗ nodemon server.js
      [nodemon] 1.18.9
      [nodemon] to restart at any time, enter `rs`
      [nodemon] watching: *.*
      [nodemon] starting `node server.js`
      Server running at http://127.0.0.1:3000/
      [nodemon] restarting due to changes...
      [nodemon] starting `node server.js`
      Server running at http://127.0.0.1:3000/
      [nodemon] restarting due to changes...
      [nodemon] starting `node server.js`
  • 备注:

    从日志可以看到,当应用程序有代码修改时,不需要重启服务,刷新页面就可以看到更新后的内容

npm 启动

  • 命令:

    npm start

  • 事例:

    ➜  setup git:(master) ✗ npm start
    	
      > setup@1.0.0 start /temp/1/node-demo/setup
      > nodemon server.js
    	
      [nodemon] 1.18.9
      [nodemon] to restart at any time, enter `rs`
      [nodemon] watching: *.*
      [nodemon] starting `node server.js`
      Server running at http://127.0.0.1:3000/
  • 备注:

    npm start 和前面的两种启动方式并没有区别,他只是将前面的启动方式做了进一步的封装,并且提升到工程模式

pm2 启动

PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等,而且使用非常简单。在项目正式部署的时候一般都是使用他来管理。

  • 命令:

    pm2 start 入口js –watch

  • 事例:

    ➜  setup git:(master) ✗ pm2 start server.js --watch
      [PM2] Applying action restartProcessId on app [server](ids: 1)
      [PM2] [server](1) ✓
      [PM2] Process successfully started
      ┌──────────┬────┬─────────┬──────┬──────┬─────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
      │ App name │ id │ version │ mode │ pid  │ status  │ restart │ uptime │ cpu │ mem       │ user │ watching │
      ├──────────┼────┼─────────┼──────┼──────┼─────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
      │ app      │ 0  │ 0.0.0   │ fork │ 0    │ stopped │ 16      │ 0      │ 0%  │ 0 B       │ root │ disabled │
      │ server   │ 1  │ 0.0.0   │ fork │ 1494 │ online  │ 35      │ 0s     │ 0%  │ 15.5 MB   │ root │ enabled  │
      └──────────┴────┴─────────┴──────┴──────┴─────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
       Use `pm2 show <id|name>` to get more details about an app
  • 备注:

    pm2的启动和前面一样没有区别,只是针对服务器环境做了一些优化,更方便做性能监控、自动重启、负载均衡等

总结

  • 项目开发中,建议使用npm配置nodemon来开发调试,即方便工程迁移,同时开发时也比较便捷
  • 项目部署时,建议使用pm2,优点上面已经说过了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人工智能

人工智能

Peter Norvig、Stuart Russell / 姜哲 / 人民邮电出版社 / 2004-6 / 85.00元

《人工智能:一种现代方法》(第2版中文版)以详尽和丰富的资料,从理性智能体的角度,全面阐述了人工智能领域的核心内容,并深入介绍了各个主要的研究方向,是一本难得的综合性教材。全书分为八大部分:第一部分“人工智能” ,第二部分“问题求解” ,第三部分“ 知识与推理” ,第四部分“规划” ,第五部分“不确定知识与推理” ,第六部分“学习” ,第七部分“通讯、感知与行动” ,第八部分“ 结论” 。一起来看看 《人工智能》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具