Как передать аргумент командной строки в NodeJS? - PullRequest
0 голосов
/ 08 октября 2018

У меня есть файловая структура, которую я сейчас перечислю для вас.У меня есть веб-сервер, который запускает процесс командной строки при нажатии кнопки.Я хочу добавить опцию для запуска сервера в автономном режиме, используя аргумент командной строки.Это то, как я должен делать это?Вот моя структура проекта.

/models
    /model1
    /model2
    /model3
/routes
    /index
    /test
    /users
    /credentials
    /adduser
/views
    /same as routes. Route 'test' has no layout.

в индексе, или '/', у меня есть функция, которая принимает несколько параметров и запускается нажатием кнопки на странице индекса.Затем мы перенаправляемся через «test / run» и представляем представление «index».Процесс продолжает работать в терминале.Сейчас я опубликую пример функции.

    router.post('/run', ensureAuthenticated, function(req, res){
        return res.redirect('/test/running')
    });
    // Get Homepage
    router.get('/running', ensureAuthenticated, function(req, res){

        console.log(res.locals.user);
        // console.log(app.locals.user);


        const var1 = res.locals.user.username;
        const var2 = res.locals.user.username;
        const var3 = res.locals.user.username;
        const var4= res.locals.user.username;
        const deets = {
            var5,
            var6
        };

            res.render('index');

            dosomething(var1, var2, var3, var4, deets);
            setInterval(dosomething, 10 * 1000);
        })

    });

Так что вы, ребята, думаете?Как я смогу реализовать прохождение var1-6 через командную строку?Я был бы очень признателен за любую помощь здесь.

Я сейчас работаю на Windows, но целевой сервер для систем Ubuntu.

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Если вам нравится шаблон типа "-arg" "value", попробуйте это:

var getArgs = function(){
    var arr = {};
    var last;
    process.argv.forEach((a, idx) => {
        if(idx > 1){
            if(last){
                arr[last] = a;
                last = undefined;
            }
            else if(!last && a.match(/-\w+/))
                last = a;
        }
    })
    return arr;
}

Результат должен быть:

$ node index no valid command -ar3 dsds -arg1 323
{ '-ar3': 'dsds', '-arg1': '323' }
0 голосов
/ 08 октября 2018

В файле node.js вы можете передавать аргументы CLI, используя встроенную process переменную

для примеров

// test.js
var args = process.argv;
console.log(args[0]);  // it will give the node executable path
console.log(args[1]);   // it will give current file name
console.log(args[2]);   // cli arguments start index

Теперь выполняется код

$ node test.js hello
/usr/bin/node
/home/blackdaemon/test.js
hello
...