运行 在 node.js heroku app 中作为子进程的子 c 可执行文件
Running child c executable as child process in node.js heroku app
我想 运行 c 程序作为 heroku 上 node.js 的子进程。
在我的 app.js:
app.get('/extra', function (req, res) {
const child = spawn('./a');
child.stdin.setDefaultEncoding('utf-8');
child.stdin.write(52 + "\n");
child.stdin.end();
child.stdout.on('data', (data) =>{
const dataString = "" + data;
res.send(dataString);
});
});
我正在使用带有 Makefile 的 heroku c-buildpack:
全部:
gcc main.c -o a.out
它记录成功,但是当我得到 /extra 应用程序失败时,当我试图列出所有带有 fs.readdirSync('/').forEach...
的文件时,它只记录了 app.js
const { child } = require("child_process")
child("ls", (error, stdout, stderr) => {
if (error) {
console.log(`[Error] ${error.message}`);
return;
}
if (stderr) {
console.log(`[Std Error] ${stderr}`);
return;
}
console.log(`${stdout}`);
});
你能试试这个吗,只是 运行 一个系统命令 ls
。
切换
spawn('./a')
至
spawn('./a.out')
已解决问题
我想 运行 c 程序作为 heroku 上 node.js 的子进程。 在我的 app.js:
app.get('/extra', function (req, res) {
const child = spawn('./a');
child.stdin.setDefaultEncoding('utf-8');
child.stdin.write(52 + "\n");
child.stdin.end();
child.stdout.on('data', (data) =>{
const dataString = "" + data;
res.send(dataString);
});
});
我正在使用带有 Makefile 的 heroku c-buildpack:
全部:
gcc main.c -o a.out
它记录成功,但是当我得到 /extra 应用程序失败时,当我试图列出所有带有 fs.readdirSync('/').forEach...
的文件时,它只记录了 app.js
const { child } = require("child_process")
child("ls", (error, stdout, stderr) => {
if (error) {
console.log(`[Error] ${error.message}`);
return;
}
if (stderr) {
console.log(`[Std Error] ${stderr}`);
return;
}
console.log(`${stdout}`);
});
你能试试这个吗,只是 运行 一个系统命令 ls
。
切换
spawn('./a')
至
spawn('./a.out')
已解决问题