记一下使用nodejs更新windows server上的代码
- 项目依赖
- 主文件代码
- 工具使用
- 注意事项
有个项目是部署在阿里云Windows Server服务器上的,每次更新都需要远程或者ssh上去更新,比较繁琐就搞了一个nodejs工具去更新代码了
# 项目依赖
项目基于koa开发,需要安装koa-router、node-cmd package.json文件
代码语言:javascript复制{
"name": "code_upd",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"koa": "^2.11.0",
"koa-router": "^7.4.0",
"node-cmd": "^3.0.0"
}
}
# 主文件代码
server.js
代码语言:javascript复制const Koa = require('koa');
const app = new Koa();
const Router = require('koa-router');
const router = new Router();
var nodeCmd = require('node-cmd');
router.get('/', async (ctx, next) => {
await next();
ctx.body = '更新代码tool';
});
router.get('/upd', async (ctx, next) => {
await next();
let res = await runCmdTest('cd demo && git pull');
ctx.body = res;
});
function runCmdTest(cmdTxt) {
return new Promise(function(resolve, reject) {
nodeCmd.get(
cmdTxt,
function(err, data, stderr){
resolve(data);
}
);
nodeCmd.run(cmdTxt);
});
}
app.use(router.routes());
app.use(router.allowedMethods());
app.listen(7000);
# 工具使用
可以用pm2启动server.js,然后就可以通过请求ip:7000/upd来更新代码了
# 注意事项
可能需要在阿里云后台的安全组放行项目使用的端口,不然无法请求到服务地址