child_process.spawn中奇怪的输出“ <Buffer”

时间:2019-06-27 12:40:27

标签: javascript mongodb child-process spawn

尝试编写脚本以转储我的MongoDB,然后再将其还原到Test数据库中。

const {spawn} = require('child_process');

const backupDB = spawn('C:\\_Apps\\mongo\\bin\\mongodump.exe', [
    '--host', 'localhost',
    '--port', '27019',
    '--collection', 'ops',
    '--db', 'prod',
    '--out', "C:\\_Apps"],
    {shell: true}
);

backupDB.stdout.on('data', (data) => {
    console.log(data.toString());
});

backupDB.stderr.on('data', (data) => {
    console.log('Error: ', data);
});

backupDB.stderr.on('close', (code) => {
    console.log('Exit Code: ', code);

奇怪的是脚本执行了预期的操作(我可以在指定位置找到输出BSON),但是输出却是神秘的:

    Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 30 38 2e 37 33 32 2b 30 32 30 30 09 77 72 69 74 69 6e 67 20 73 6d 61 72 74 4f 52 2e 6f 70 73 20 74 ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 31 31 2e 32 36 35 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 31 34 2e 32 36 35 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 31 37 2e 32 36 35 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 32 30 2e 32 36 35 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 32 33 2e 32 36 35 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 32 36 2e 32 36 34 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 32 39 2e 32 36 35 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 33 32 2e 32 36 35 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 33 35 2e 32 36 35 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 33 38 2e 32 36 35 2b 30 32 30 30 09 5b 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 34 31 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 34 34 2e 32 36 36 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 34 37 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 35 30 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 35 33 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 35 36 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 36 3a 35 39 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 30 32 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 30 35 2e 32 36 36 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 30 38 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 31 31 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 31 34 2e 32 36 36 2b 30 32 30 30 09 5b 23 23 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 31 37 2e 32 36 36 2b 30 32 30 30 09 5b 23 23 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 32 30 2e 32 36 36 2b 30 32 30 30 09 5b 23 23 23 23 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 32 33 2e 32 36 36 2b 30 32 30 30 09 5b 23 23 23 23 23 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 32 36 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 23 23 23 23 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 32 39 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 23 23 23 23 23 23 23 23 23 2e 2e 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 33 32 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 23 23 23 23 23 23 23 23 23 23 23 2e 2e 2e 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 33 35 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 2e 2e 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 33 38 2e 32 36 35 2b 30 32 30 30 09 5b 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 2e ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 34 31 2e 32 36 36 2b 30 32 30 30 09 5b 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 34 33 2e 33 34 32 2b 30 32 30 30 09 5b 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 23 ... >
Error:  <Buffer 32 30 31 39 2d 30 36 2d 32 37 54 31 34 3a 32 37 3a 34 33 2e 33 34 32 2b 30 32 30 30 09 64 6f 6e 65 20 64 75 6d 70 69 6e 67 20 73 6d 61 72 74 4f 52 2e ... >
Exit Code:  false

2 个答案:

答案 0 :(得分:1)

该输出只是编码的文本。

尝试此操作以查看实际输出:

backupDB.stderr.on('data', (data) => {
    console.log('Error: ', data.toString('ascii'));
});

请注意,此输出来自 stderr ,而不是 stdout

您发布的内容翻译为:

2019-06-27T14:26:08.732+0200    writing smartOR.ops t
2019-06-27T14:26:11.265+0200    [....................
2019-06-27T14:26:14.265+0200    [....................
2019-06-27T14:26:17.265+0200    [....................
2019-06-27T14:26:20.265+0200    [....................
2019-06-27T14:26:23.265+0200    [....................
2019-06-27T14:26:26.264+0200    [....................
2019-06-27T14:26:29.265+0200    [....................
2019-06-27T14:26:32.265+0200    [....................
2019-06-27T14:26:35.265+0200    [....................
2019-06-27T14:26:38.265+0200    [....................
2019-06-27T14:26:41.265+0200    [###.................
2019-06-27T14:26:44.266+0200    [###.................
2019-06-27T14:26:47.265+0200    [###.................
2019-06-27T14:26:50.265+0200    [###.................
2019-06-27T14:26:53.265+0200    [###.................
2019-06-27T14:26:56.265+0200    [###.................
2019-06-27T14:26:59.265+0200    [###.................
2019-06-27T14:27:02.265+0200    [###.................
2019-06-27T14:27:05.266+0200    [###.................
2019-06-27T14:27:08.265+0200    [###.................
2019-06-27T14:27:11.265+0200    [###.................
2019-06-27T14:27:14.266+0200    [#####...............
2019-06-27T14:27:17.266+0200    [#####...............
2019-06-27T14:27:20.266+0200    [#######.............
2019-06-27T14:27:23.266+0200    [########............
2019-06-27T14:27:26.265+0200    [##########..........
2019-06-27T14:27:29.265+0200    [############........
2019-06-27T14:27:32.265+0200    [##############......
2019-06-27T14:27:35.265+0200    [#################...
2019-06-27T14:27:38.265+0200    [###################.
2019-06-27T14:27:41.266+0200    [####################
2019-06-27T14:27:43.342+0200    [####################
2019-06-27T14:27:43.342+0200    done dumping smartOR.

答案 1 :(得分:0)

您可以这样解码:

backupDB.stdout.on('data', (data) => {
 console.log(Buffer.from(data).toString());
});

toString()内,您可以提供所需的任何encoding