Кто-нибудь пытался запустить дочерние процессы на node.js Cloud Foundes?Запуск дочерних процессов на облачном литейном узле.js
У меня есть ниже код работает нормально локально:
var port = (process.env.VMC_APP_PORT || 3000),
host = (process.env.VCAP_APP_HOST || 'localhost'),
http = require('http');
var childProcess = require('child_process'),
phantom = require('phantomjs'),
ls;
http.createServer(function(req, res) {
ls = childProcess.exec('phantomjs -h', function (error, stdout, stderr) {
if (error) {
console.log(error.stack);
console.log('Error code: '+error.code);
console.log('Signal received: '+error.signal);
}
console.log('Child Process STDOUT: '+stdout);
console.log('Child Process STDERR: '+stderr);
});
ls.on('exit', function (code) {
console.log('Child process exited with exit code '+code);
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('Working...');
res.end();
});
}).listen(port, host);
Но vmc push
на cloudfoundry.com, он дал мне ошибку в vmc logs
Reading logs/stdout.log... OK
Child process exited with exit code 127
Error: Command failed: /bin/sh: phantomjs: not found
at ChildProcess.exithandler (child_process.js:536:15)
at ChildProcess.EventEmitter.emit (events.js:91:17)
at maybeClose (child_process.js:634:16)
at Socket.ChildProcess.spawn.stdin (child_process.js:805:11)
at Socket.EventEmitter.emit (events.js:88:17)
at Socket._destroy.destroyed (net.js:358:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
Error code: 127
Signal received: null
Child Process STDOUT:
Child Process STDERR: /bin/sh: phantomjs: not found
Child process exited with exit code 127
Error: Command failed: /bin/sh: phantomjs: not found
at ChildProcess.exithandler (child_process.js:536:15)
at ChildProcess.EventEmitter.emit (events.js:91:17)
at maybeClose (child_process.js:634:16)
at Socket.ChildProcess.spawn.stdin (child_process.js:805:11)
at Socket.EventEmitter.emit (events.js:88:17)
at Socket._destroy.destroyed (net.js:358:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
Error code: 127
Signal received: null
Child Process STDOUT:
Child Process STDERR: /bin/sh: phantomjs: not found
Затем я добавил package.json
файл ниже и до сих пор та же ошибка:
{
"name" : "mytestchildprocesses",
"version" : "0.1.0",
"dependencies" : {
"phantomjs" : "1.8.1-3",
"child_process" : "0.x.x",
"http" : "0.0.0"
}
}
В качестве альтернативы, я попробовал кого-то еще по работе над установкой phantomjs на node.js: https://github.com/sgentle/phantomjs-node. Но этот параметр даже не работает на моей локальной машине (не мог вызвать phantomjs.cmd в Windows).
Я скорее понял, как выполнять дочерние процессы в cloudfoundry.com, если вы, ребята, можете помочь.
Действительно оцените !!
phantomjs может быть установлен локальным или глобальным, но PATH (для Windows) должен указывать на phantomjs.bat (или .cmd). В этом случае возникает вопрос: как правильно выполнить дочерний процесс, когда изагрузка должна быть загружена? –