Как выполнить скрипт оболочки mongoDB через Node.js? - PullRequest
1 голос
/ 30 марта 2020

Я работаю над своим классным проектом, в котором я хочу продемонстрировать использование шардинга mongoDB. Я использую родной драйвер mongoDB node.js. Я узнал, что в этом драйвере нет функции шардинга. Итак, я должен написать сценарий оболочки, чтобы сделать шардинг. Итак, возможно ли сделать это как-то так:

узел myfile. js (выполняет мой скрипт оболочки и запускает мой код)

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

почему бы вам не рассмотреть возможность использования npm сценариев запуска? если вы хотите, чтобы скрипт работал автономно, добавьте сценарии с test / start или обоими в ваш пакет json,

"scripts": {
    "test": "node mytestfile.js",
    "start": "node ./myfile --param1 --param2"
  },

и run npm run test или npm run start, которые могут выполнять файл сценария. таким образом, вы даже можете передать параметры в сценарий.

или элегантный путь child_process,

const { exec } = require("child_process");
exec("node myfile.js", (error, stdout, stderr) => {
    if (error) {
        console.log(`error: ${error.message}`);
        return;
    }
    if (stderr) {
        console.log(`stderr: ${stderr}`);
        return;
    }
    console.log(`stdout: ${stdout}`);
});

stderr и stdout будут отображать ход выполнения сценария при дальнейшей сборке. надеюсь, это поможет.

0 голосов
/ 30 марта 2020

Если у вас уже есть сценарий оболочки, почему бы не выполнить его через модуль Child Process . Просто используйте приведенную ниже функцию для запуска имеющегося скрипта.

child_process.execFileSyn c (file [, args] [, options])

Обратите внимание, что скрипт должен иметь разрешения на запуск (используйте chmod a+x script в противном случае)

...