我正在尝试使用GitHub webhooks和node.js构建自动代码提取服务。
昨天,当我运行这段代码时,它就像一个咒语,将正确的存储库拉到正确的文件夹,但是今天,它刚刚开始默默地失败。它可以在我的开发机器上使用。
如磁贴中所述,我正在使用IISNode在IIS下运行它,但是我开始怀疑是否应该在没有IIS的情况下托管它。这是我编写的代码。
var exec = require('child_process').exec,
http = require('http'),
path = require('path'),
config = require('./config'),
server = http.createServer(function(req, res) {
var incomingData = '';
req.on('data', function(data) {
incomingData += data;
});
req.on('end', function() {
incomingData = JSON.parse(incomingData);
var repoName = incomingData.repository.name;
var pullPath = path.resolve('..', repoName);
console.log(pullPath);
var body = "<html><body>stdout: ";
exec('cd ' + pullPath + ' && git pull', function (error, stdout, stderr) {
if( error !== null ){
console.log(error);
}
console.log("stdout: " + stdout);
console.log("stderr: " + stderr);
body += stdout;
});
body += "</body></html>";
res.writeHead(200, {
'Content-Length': body.length,
'Content-Type': 'text/plain' });
res.write(body, 'utf8');
res.end();
});
}).listen(config.web.port);
为什么突然停止工作?
编辑:
我为此在issnode的github页面上打开了一个问题。 https://github.com/tjanczuk/iisnode/issues/352
编辑2:
添加一些调试信息
http://tjanczuk.github.io/iisnode/iisnode-debug.html#iisnode_ver=0.2.11&node=node.exe&dns=DNS&worker_pid=600&node_pid=1200&worker_mem_ws=11072&worker_mem_pagefile=4728&node_mem_ws=12820&node_mem_pagefile=12696&app_processes=1&process_active_req=1&app_active_req=1&worker_total_req=1&np_retry=1&req_time=0&hresult=0
edi3:
似乎我在转至... / app.js / debug /时遇到问题,但它似乎一直在等待来自服务器的响应。
最佳答案
我弄清楚出了什么问题,我没有为IISNode保存github凭据。我通过将房屋指向我的管理员用户(使用github ssh键)来“入侵”它。
我通过更多的谷歌搜索发现了这一点,并意识到我正在生成许多似乎无法解析的git实例(它们正在等待我输入密码)。
关于node.js - IISNode执行程序静默失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24479892/