как передать переменную сценария оболочки в приложение узла. js? - PullRequest
0 голосов
/ 13 июля 2020

Я подготовил сценарий оболочки для запуска приложения узла (написанного с использованием структуры express). Сценарий оболочки выглядит следующим образом:

#!/bin/bash
cd <NODE.JS Project directory>
npm install --save
var1="connect_point1";
var2="connect_point2";
node app.js var1 var2

в приложении. js включены следующие строки:

//print process.argv
process.argv.for Each((val, index) => {console.log('${index}: ${val}');});
var cp1=var1;
var cp2=var2;

Я не могу получить значения var1, var2, которые передаются из сценария оболочки чтобы использовать его в node app. js script. Пожалуйста, предложите мне правильный способ добиться этого.

В журнале можно увидеть, что переменные var1 и var2 не определены. поэтому проблема заключается в том, что я пытаюсь передать переменную сценария оболочки в приложение узла. js script..pls предлагает мне, как правильно передать этот параметр, чтобы его можно было использовать в ap. js и других последующих сценариях узла.

1 Ответ

0 голосов
/ 13 июля 2020

Добавьте знак $ к своим аргументам внутри bash скрипта для обозначения переменных.

#!/bin/bash

var1="connect_point1"
var2="connect_point2"

node app.js $var1 $var2

app. js

process.argv.forEach((index, value) => console.log(index, value));

Это результат, который я вижу при запуске приведенного выше сценария bash:

./bash_script.sh
/usr/local/Cellar/node/12.4.0/bin/node 0
/Users/Username/Temp/app.js 1
connect_point1 2
connect_point2 3

здесь вы можете видеть, что нужные вам значения аргументов расположены в индексах 2 и 3:

var cp1 = process.argv[2];
var cp2 = process.argv[3];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...