Nodejs 项目部署成 windows 服务

🌙
手机阅读
本文目录结构

场景: 在 Windows 服务器上进行部署,默认是一个终端进行跑,但是容易被别人误操作给关掉;

解决: 做成 Windwos 服务,这样除非刻意的操作,否则都不会有问题的了;

优化: 避免意外

  • 1- 做开机启动,设置该服务为开机自启动,即使服务器重启也没事;
  • 2- 做服务守护,假设范围是ZAB打头的服务,把服务的名字设置为ZAB-XXX这样就进行批量守护了

强行说的理由:部署 nodejs 的项目,大家都会用到 forever 这个库,这个库相当好用,可以让 nodejs 的站点在后台跑,不需要 cmd 的窗口一直开着。在 windows 下,如果用户一直不注销,这种方式是可行的,但在服务器上的话就麻烦了,因为服务器在部署完成后,一般都会注销,那么站点就挂了。(反正就是我想弄成 widows 服务,上面都是扯的)

步骤

  • 1、安装需要的包
  • 2、写安装服务
  • 3、写卸载服务
  • 4、执行安装或者卸载服务

1、首先全局安装全局安装 node-windows 包

npm install -g node-windows

2、安装服务的书写 (install.js)

let Service = require('node-windows').Service;
let svc = new Service({
    name: 'wifisong.canonchain.explorer',    //服务名称
    description: 'CanonChain的浏览器服务', //描述
    script: 'E:/canonchain-explorer/explorer-backend/bin/www' //nodejs项目要启动的文件路径
});
svc.on('install', () => {
    console.log("Install Success")
    svc.start();
});
svc.install();

3、卸载服务的书写 (uninstall.js)

let Service = require('node-windows').Service;
let svc = new Service({
    name: 'wifisong.canonchain.explorer',    //服务名称
    description: 'CanonChain的浏览器服务', //描述
    script: 'E:/canonchain-explorer/explorer-backend/bin/www' //nodejs项目要启动的文件路径
});
svc.on('uninstall', function () {
    console.log('Uninstall Complete.');
    console.log('The service exists: ', svc.exists);
});
svc.uninstall();

4、执行安装 / 卸载

node install.js //安装服务
node uninstall //卸载服务

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了