Node.js之child_process的实践码云WebHooks
缘由
最近一个朋友说想做一个APP的壳子,里面嵌套H5的页面。 所以我就帮他搞了,APP的壳子找的安卓的同事写的,H5的页面的web 服务帮他搭建好了。但是又不能因为H5的页面代码更新要我每次去服务器上拉去代码,所以就像,能不能在每次提交代码之后就自动拉去代码。这里就是WebHooks的使用了。
其实在很早就知道这个东西,只是一直没实践过。这次实践之后发现实现功能还是很简单的,下面就记录下来。
码云的设置
您的项目-管理-WebHooks

在URL栏中输入接口地址,在选择事件中选择需要的事件,我只勾选了push。
这里设置之后可以测试的,这个是后续的事情。
接口实现
下面的代码需要结合我之前的Node.js系列文章一起看。
var express = require('express');
var router = express.Router();
var process = require('child_process');
router.all('/webhook/index', function(req, res, next) {
process.exec('cd /home/manage && git pull',
function (error, stdout, stderr) {
if (error !== null) {
console.log('exec error: ' + error);
}
});
res.end(JSON.stringify({
msg: 'webhook/index',
status: 100,
res: 'res'
}));
})
module.exports = router;
这里其实就是child_process模块的一个简单使用。
代码push之后会调用这个接口,再执行命令,先到制定的目录再执行git pull。
总结
其实这里关于WebHook 和child_process的使用还可以继续的发掘,这个等以后再去慢慢研究了。
智能推荐
node.js之 EventEmitter
node的事件模块只包含了一个类:EventEmitter。这个类在node的内置模块和第三方模块中大量使用。EventEmitter本质上是一个观察者模式的实现。 所谓观察者模式: 它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时,所有依赖于它的对象都将得到通知。 因此最基本的EventEmitter功能,包含了一个观察者和一个被监听的对象,对应的实...
[Node.js]之HelloWorld
初识Node.js Node.js 是一种建立在Google Chrome’s v8 engine上的 non-blocking (非阻塞), event-driven (基于事件的) I/O平台. Node.js平台使用的开发语言是JavaScript,平台提供了操作系统低层的API,方便做服务器端编程,具体包括文件操作、进程操作、通信操作等系统模块 Node.js可以用来做什么? ...
Node.js之Stream
Node.js之Stream 例子1 Steam-流 例子2\3 管道 Stream对象的原型链 Stream的分类 自创流 例子1 Steam-流 例子2\3 管道 Stream对象的原型链 Stream的分类 自创流...
10个Node.js最佳实践:Node Gurus的启示
10和Node.js的最佳实践:启示节点大师是由邀请的作者阿扎特马尔丹 。 SitePoint客人帖子的目的是让你从著名作家和网络社区的扬声器引人入胜的内容。 在我以前的文章的10个技巧,成为2017年一个更好的节点开发者 ,我公司推出10 Node.js的提示,技巧和技术,你今天能应用到你的代码。 这篇文章继续与另外10和最佳实践,静脉,以帮助你把你的节点技能到一个新的水平。 这就是我们要盖: ...
2018andoid混淆打包遇到Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
在正式打包中,加上了 然后打包过程中,build中就报出了 Execution failed for task ‘:app:transformClassesAndResourcesWithProguardForRelease’. 然后就goodle了一下,最简单有效的回复,就是在 proguard-rules.pro 文件中加入 -ignorewarnings 但是在我这可...
猜你喜欢
matlab与python的交互
一、从matlab调用python 1、先给出官方链接 进入链接后点示例,内容更丰富一些。《Python 库 — 示例》 2、简单说一下环境配置(下面的图片内容来自https://blog.csdn.net/jnulzl/article/details/51170859) 3、添加python环境变量以加载模块 如果是将当前文件夹加入到python搜索路径,modpath='';即可。...
Java实现先序数组转换成后序数组
算法描述 满二叉树的先序序列存储在数组中,设计一个算法将其转换成后序遍历 满二叉树形状 先序和后序序列 先序序列:A B D H I E J K C F L M G N O 后序序列:H I D J K E B L M F N O G C A 算法思想 Transfer函数参数说明: pre就是先序序列数组,f1,l1分别是先序序列的第一个和最后一个元素; post就是后序序列数组,f2,l2分别...
markdown学习
欢迎随时骚扰:QQ为495470602 markdown学习 我们来学习一下markdown:什么是marjdown Markdown 是一种轻量级标记语言,创始人为约翰·格鲁伯。它允许人们“使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML 文档”。这种语言吸收了很多在电子邮件中已有的纯文本标记的特性。 优点:由于 Markdown 的轻量化、易...
