前言
windows执行node命令时,我们有时js需要做一件持续进行的事务,用cmd启动就必须保持窗口不被关闭,这样肯定不是万全之策,这时候我们可以尝试将node命令启动为windows服务运行。
依赖包
在项目根目录导入node-windows依赖。
npm i node-windows
安装服务
假如我这里有一个文件database.js
,它做的事是将数据持续写进数据库,如果我们需要在cmd用node database
启动的话,它会持续运行,而且为了它的功能运行我不能关闭它。
我们现在只编写一个service.js
,就可以将它安装为windows服务运行。
//service.js
import path from "path";
import nodeWindow from "node-windows";
const Service = nodeWindow.Service;
let svc = new Service({
name: "node_database", //名称
description: "添加数据进入数据库", //描述
script: path.resolve("./database.js"), //node执行入口文件
nodeOptions: ["--harmony", "--max_old_space_size=4096"],
});
svc.on("install", function () {
svc.start();
if(svc.exists){
console.log('服务安装成功')
}
});
svc.install();
然后执行用node运行一次该文件,执行安装结束即可。
node service.js
服务安装成功
卸载服务
//uninstall.js
import path from 'path'
import nodeWindow from 'node-windows'
const Service = nodeWindow.Service
let svc = new Service({
name: 'node_database', //名称
script: path.resolve('./index.js'), //node执行入口文件
nodeOptions: [
'--harmony',
'--max_old_space_size=4096'
]
});
svc.on('uninstall', function () {
if (!svc.exists) {
console.log('服务卸载完成');
}
});
svc.uninstall();
同样启动即可卸载服务
node uninstall.js
服务安装成功
记得修改相关内容时,可能需要重新卸载安装服务。
尾言
如果觉得文章还不错的话,欢迎点赞收藏哦,有什么错误或者意见建议也可以留言,感谢~