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,优点上面已经说过了

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

查看所有标签

猜你喜欢:

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

Python语言程序设计

Python语言程序设计

[美]梁勇(Lang Y. D.) / 李娜 / 机械工业出版社 / 2015-4 / 79.00元

本书采用“问题驱动”、“基础先行”和“实例和实践相结合”的方式,讲述如何使用Python语言进行程序设计。本书首先介绍Python程序设计的基本概念,接着介绍面向对象程序设计方法,最后介绍算法与数据结构方面的内容。为了帮助学生更好地掌握相关知识,本书每章都包括以下模块:学习目标,引言,关键点,检查点,问题,本章总结,测试题,编程题,注意、提示和警告。 本书可以作为高等院校计算机及相关专业Py......一起来看看 《Python语言程序设计》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器