Json nodejs和gith没有';行不通
我正在尝试使用github进行自动部署,我执行此js以拥有一个“服务器”来接收github的钩子,这工作非常出色,但我需要执行一个脚本来下载存储库,但此代码不执行我的hook.sh。我之前没有使用node的经验,所以我在这里迷路了Json nodejs和gith没有';行不通,json,node.js,github,webhooks,autodeploy,Json,Node.js,Github,Webhooks,Autodeploy,我正在尝试使用github进行自动部署,我执行此js以拥有一个“服务器”来接收github的钩子,这工作非常出色,但我需要执行一个脚本来下载存储库,但此代码不执行我的hook.sh。我之前没有使用node的经验,所以我在这里迷路了 // Listen on port 9001 var gith = require('gith').create( 9001 ); // Import execFile, to run our bash script var execFile = require('c
// Listen on port 9001
var gith = require('gith').create( 9001 );
// Import execFile, to run our bash script
var execFile = require('child_process').execFile;
gith({
repo: 'username/autodeploy'
}).on( 'all', function( payload ) {
if( payload.branch === 'master' )
{
// Exec a shell script
execFile('/root/nodeapp/hook.sh', function(error, stdout, stderr) {
// Log success in some manner
console.log( 'exec complete' );
});
}
});
好的,我是手动测试的,似乎问题出在gith({….这里面的所有东西都不起作用,有人知道吗
多亏了大家嗯,问题出在
gith({
repo: 'username/autodeploy'
}).on( 'all', function( payload ) {....
我把它换成了
gith({
repo: 'username/autodeploy'
}).on( 'file:all', function( payload ) {....
这就解决了我的问题。感谢@mscdex和@alandarev告诉我要测试。你的
execFile()吗
回调被调用?如果是这样,那么error.code
、stdout
和stderr
会说什么?是否将/root/nodeapp/hook.sh
设置为可执行文件,并以适当的hashbang开头?我不知道如何读取错误,github会向脚本发送请求,脚本会做出响应,但我不知道如何查看i如果出现一个错误ocurr…是的,hook.sh是一个可执行脚本,并且有必要,我直接执行它并做必须做的事情。问题在于这个脚本。感谢您必须创建一个新的临时js文件,并将您的execFile
代码放在那里,运行该文件并查看代码是否工作。分块调试程序更容易,而不是作为一个整体调试.ok,那么一个包含以下内容的文件?var execFile=require('child_process').execFile;execFile('/root/nodeapp/hook.sh',function(error,stdout,stderr){//Log success in this-ways-console.Log('exec complete');};然后我如何执行它?好的,我测试它,然后工作,做它必须做的事情。所以我认为问题在于有效载荷,谢谢mscdex和Alandarov。你能看到gith的错误吗?