[英]How do you use a file as input with Node's child_process.spawn?
在我的gulpfile.js
我有這個spawn()
,它觸發了一個mysqldump
:
let mysqldump = spawn('mysqldump', [
'-v',
'-u',
'my_db_name',
'--password=' + process.env.MY_PRODUCTION_PASSWORD,
'-h',
'my_domain.com',
'my_db_name',
'< ' + dump_filename
], {
stdio: 'inherit'
});
雖然我收到有關最后一部分的錯誤消息。 它說Couldn't find table: "< Development-dump.sql"
,這使我相信最后一行沒有使用轉儲文件作為輸入。 如何spawn
使用文件作為這樣的輸入?
發生此錯誤是因為spawn
命令無法解析輸入。 您需要將轉儲文件寫入spawn
命令的input
流:
// Define the spawned process without the input
let mysqldump = spawn('mysqldump', [
'-v',
'-u',
'my_db_name',
'--password=' + process.env.MY_PRODUCTION_PASSWORD,
'-h',
'my_domain.com',
'my_db_name'
]);
// Write the dump file to the input stream.
mysqldump.stdin.write(//path to dump file);
mysqldump.stdin.end();
您似乎想使用<
重定向標准輸入,以下代碼可能有效。
let mysqldump = spawn([
'mysqldump',
'-v',
'-u',
'my_db_name',
'--password=' + process.env.MY_PRODUCTION_PASSWORD,
'-h',
'my_domain.com',
'my_db_name',
'< ' + dump_filename
].join(' '), {
stdio: 'inherit',
shell: true
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.