Как передать JSON аргументом в nodejs.exec?

230
17 декабря 2017, 11:45

Есть библиотека для миграции БД (mongo-migrate - https://github.com/afloyd/mongo-migrate), она запускается следующей строкой в терминале nodejs: node ./node_modules/mongodb-migrate -runmm -dbc '{"host":"localhost","db":"myDb","port":27017,"username":"user1","password":"pswd1"}' up Мне нужно запустить эту команду внутри js-файла, пробую использовать require('child_process').exec, Но не могу понять как мне передать этот JSON как параметр в exec... Пробовал так:

let exec = require('child_process').exec;
exec(`node ./node_modules/mongodb-migrate -runmm -dbc '{"host":"localhost","db":"myDb","port":27017,"username":"user1","password":"pswd1"}' up`,
  (error, stdout, stderr) => {
  if (error) {
    console.error(`exec error: ${error}`);
    return;
  }
    console.log(`${stdout}`);
    console.log(`${stderr}`);
});

Но получаю ошибку:

exec error: Error: Command failed: node ./node_modules/mongodb-migrate -runmm -dbc '{"host":"localhost","db":"myDb","port":27017,"username":"user1","password":"pswd1"}' up
    undefined:1
    '{host:localhost,db:myDb,port:27017,username:user1,password:pswd1}'
    ^
    SyntaxError: Unexpected token h in JSON at position 0

Такое ощущение что этот exec как то форматирует мою исходную строку, и убирает все ", и на выходе получается JSON невалидный...

Как мне передать JOSN как аргупент в require('child_process').exec что бы он был без изменений?

READ ALSO
Как создать букмарклеты (BOOKMARKLETS) [требует правки]

Как создать букмарклеты (BOOKMARKLETS) [требует правки]

Как создать букмарклет? С чего начать? Дайте направление

274
Задать размеры для виджета Телеграм

Задать размеры для виджета Телеграм

В новом обновлении Телеграм, появилась возможность установки html код с сообщением из каналовКод выглядит примерно так <script async src="https://telegram

251
Работа с HTML объектами в Jquery

Работа с HTML объектами в Jquery

Я считываю все содержимое HTML страницы и отображаю его на ней же после этогоЕдинственная разница, я хочу изменять некоторые части страницы...

322