开发中遇到的问题

如果你有 PHP 开发经验,会习惯在修改 PHP 脚本后直接刷新浏览器以观察结果,而你在开发 Node.js 实现的 HTTP 应用时会发现,无论你修改了代码的哪一部份,都必须终止Node.js 再重新运行才会奏效。这是因为 Node.js 只有在第一次引用到某部份时才会去解析脚本文件,以后都会直接访问内存,避免重复载入,而 PHP 则总是重新读取并解析脚本(如果没有专门的优化配置)。Node.js的这种设计虽然有利于提高性能,却不利于开发调试,因为我们在开发过程中总是希望修改后立即看到效果,而不是每次都要终止进程并重启。

这时若你修改了js文件,或是调试功能,或是增加功能。这时需要重新发布该服务,每次修改都需要执行以下两步:

1 control+c

2 node server.js

很不爽!因此有人开发了一个自动发布(热发布)的工具,你只需要在修改文件后保存,它就能自动替你发布,这就是所谓的热部署。就像tomcat或websphere等一些主流的web应用服务器那样保存即热部署。下面将介绍两个NodeJS中的开源热部署工具。

(1)supervisor

supervisor 可以帮助你实现这个功能,它会监视你对代码的改动,并自动重启 Node.js。使用方法很简单,首先使用 npm 安装 supervisor:

$ npm install -g supervisor

如果你使用的是 Linux 或 Mac,直接键入上面的命令很可能会有权限错误。原因是 npm需要把 supervisor 安装到系统目录,需要管理员授权,可以使用 sudo npm install -g supervisor 命令来安装。

接下来,使用 supervisor 命令启动 app.js:

$ supervisor app.js

命令行窗口会显示启动成功信息,即开启了代码监听:

当代码被改动时,运行的脚本会被终止,然后重新启动。在终端中显示的结果如下:

supervisor 这个小工具可以解决开发中的调试问题。

github上的主页:https://github.com/isaacs/node-supervisor

(2)hotnode

首先需要安装,打开NodeJS命令行工具,输入sudo npm -g install hotcode进行全局安装

安装成功后,可以随时查看它的版本号,在命令行输入:hotcode -v

使用很简单,执行命令:hotcode server.js,输出信息如下:

每次修改都会有一条日志打印出来。

github上的主页:https://github.com/saschagehlich/hotnode

转载于:https://www.cnblogs.com/CodeGuy/archive/2013/04/27/3043040.html

NodeJS”热部署“代码,实现动态调试相关推荐

  1. Nodejs.热部署方法

    在开发中我们修改了一点代码后要去重启服务器才能看到结果,为了省去这个过程我们以往经常使用热部署代码的方法 下面是使用"supervisor"来达到热部署能力的方法: sudo np ...

  2. Eclipse Debug不能热部署代码may be out-of-synch

    [b]问题描述:[/b] Project通过ant工具编译部署到JBoss下,在使用Eclipse远程调试功能时,热修改代码不成功. [b]分析原因[/b] [color=red]eclipse编译的 ...

  3. TP-Link SR20远程代码执行动态调试

    环境搭建 SR20固件 qemu atftp服务 漏洞复现 调试 环境搭建 SR20固件 SR20的固件,直接官网,ubuntu终端wget下面链接 https://static.tp-link.co ...

  4. android studio 热部署,Android Studio 你不知道的调试技巧

    原标题:Android Studio 你不知道的调试技巧 (点击上方公众号,可快速关注) 来源:伯乐在线专栏作者 - weishu http://android.jobbole.com/83282/ ...

  5. 012 动态调试smali代码

    文章目录 前言 配置调试插件 调试插件的使用 总结 常见问题 前言 之前分析游戏进行破解的时候,都是通过字符串和日志的方式来对程序进行静态分析.但是在遇到算法类型的程序时,这种方法就显得效率特别低,所 ...

  6. jrebel热部署不起作用_5种SpringBoot热部署方式,你用哪种?

    来源 | my.oschina.net/ruoli/blog/1590148 Spring Boot 中 5 种热部署方式如下:  1.模板热部署  2.使用调试模式Debug实现热部署  3.spr ...

  7. 5种SpringBoot热部署方式,你用哪种?

    来源 | my.oschina.net/ruoli/blog/1590148 Spring Boot 中 5 种热部署方式如下: 1.模板热部署 2.使用调试模式Debug实现热部署 3.spring ...

  8. Eclipse Debug不能热部署解决

    摘要: Eclipse Debug不能热部署代码may be out-of-synch 问题描述:Project通过ant工具编译部署到JBoss下,在使用Eclipse远程调试功... " ...

  9. java agent简介热部署SDK接入

    思考: 我们在平时使用arthas的类方法监控,类增强,到底是怎么在应用启动后还能对类进行修改的呢,他到底是基于什么场景下孕育出来的呢,今天我们就来聊一聊java-agent,当了解完了agent机制 ...

最新文章

  1. MachineLN博客目录
  2. 网站优化四大优势必须了解
  3. eui加载时间长_游戏加载时间越来越短了?背后藏着这些小心机
  4. Navicat Premium 12.0.24破解
  5. windows下解决mysql5中文乱码的问题
  6. 华为服务器改硬盘启动不了怎么办,华为服务器装系统加载os怎么回事
  7. 2022年Spark基础学习笔记目录
  8. 刚看到另外一个育儿作者收入是我的3000倍
  9. Linux软件源镜像修改
  10. Java interviewee-基础知识《一》
  11. setPositiveButton,setNegativeButton,setNeutralButton各代表什么意思
  12. DIY装机的看过来了! 一份实用的台式机硬件选取流程
  13. 良心安利体育运动ppt幻灯片素材网站
  14. 计算机绘图快捷键,计算机绘图常用软件快捷键大全
  15. JavaScript【图片轮播】
  16. Mac安装brew(2020年踩过无数坑后亲测有效的方法)
  17. VC通过ADO操作Access2007数据库
  18. 2022.01.29
  19. Android 滚动字幕实现
  20. 自然语言处理(NLP)任务中常用的分词工具及底层算法支持

热门文章

  1. 花马云10亿无作为,被同事骂的当众落泪,后为阿里创造4500亿价值
  2. 发送语音+讯飞翻译 项目案例
  3. AutoCAD .NET API 之——DimStyleTableRecord 的属性列表
  4. 使用 Git 改进工作方式
  5. sencha touch中实现页面之间的互相跳转
  6. 计算器软件----表达式求值
  7. Oracle配置监听和连接,已经一些比较容易混淆的相关概念
  8. MyEclipse快捷键与插件大全
  9. .net通过获取客户端IP地址反查出用户的计算机名
  10. 多图:多样化实现App多渠道统计