相关疑难解决方法(0)

使用node.js命令行参数作为环境变量

我用以下命令调用我的 node.js 应用程序

node index.js a=5
Run Code Online (Sandbox Code Playgroud)

我想在我的代码中直接使用值“5”作为环境变量,例如

const myNumber = process.env.a
Run Code Online (Sandbox Code Playgroud)

(如此处所述

如果我尝试上述操作,“MyNumber”在运行时未定义。

解决方案

  • Linux:
a=5 node index.js
Run Code Online (Sandbox Code Playgroud)
  • Windows(Powershell):
    $env:a="5";node index.js
Run Code Online (Sandbox Code Playgroud)

environment-variables command-line-arguments node.js

4
推荐指数
1
解决办法
7798
查看次数

如何从Node.js访问shell变量值?

假设有一个变量key1,它的值是123

key1=123
Run Code Online (Sandbox Code Playgroud)

所以当我在linux环境中运行命令时echo $key1,我输出为123.

在此输入图像描述

现在我有以下gulp任务.

const child_process = require('child_process');
....
gulp.task('printKeyValue', function() {
    var value1 = child_process.execSync('echo $key1');
    console.log(value1.toString().trim());
});
Run Code Online (Sandbox Code Playgroud)

在这里,我试图通过使用Child Process从nodejs访问linux变量的值

但是当我运行以下gulp任务时,我没有得到所需的输出.

npm run gulp -- printKeyValue
Run Code Online (Sandbox Code Playgroud)

相反,我得到输出,$key1而不是123.

见下面的截图

在此输入图像描述

其他命令如ls&pwdgulp task中提供了所需的输出.

有人可以帮忙解决这个问题或提出另一种方法吗?

linux node.js gulp

2
推荐指数
1
解决办法
874
查看次数

Node JS 使用 windows % 变量视为相对路径的绝对路径

我正在fs.unlinkSync()Node.js 脚本中使用方法,以便删除位于Appdata目录中的文件。

定位目录的最佳实践Appdata是使用 指定路径%appdata%,因此在我的代码中:

var filePath = '%appdata%/some/path/file.ext';
fs.unlinkSync(filePath);
Run Code Online (Sandbox Code Playgroud)

问题是返回错误,表明路径错误,因为它试图找到类似以下内容的内容:

C:\my\project\%appdata%\some\path\file.ext
Run Code Online (Sandbox Code Playgroud)

这显然不存在。

所以我正在寻找解决问题的最佳%appdata%方法C:\Users\user\AppData\Roaming

希望我能做一些事情:

var filePath = resolveToAbsolutePath('%appdata%/some/path/file.ext');
fs.unlinkSync(filePath);
Run Code Online (Sandbox Code Playgroud)

任何形式的帮助表示赞赏。

笔记:

  1. 不,这个问题与使用正斜杠而不是反斜杠无关。
  2. 这与使用环境变量不同,因为我从外部获取路径,并且我还需要能够解析%路径。我感兴趣的是概括该解决方案,而不是手动用环境变量数据替换路径。

javascript filepath fs node.js

1
推荐指数
1
解决办法
1429
查看次数

使用Node.js的Azure WebApp中的环境变量

我已经在连接到Azure SQL数据库的Azure上成功运行了Node.js Webapp。手动将数据库详细信息输入代码中时,一切工作正常。

当我尝试将连接详细信息用作环境变量时,就会出现问题。

我的Node.js连接看起来像这样:

const config = {
user: `${APPSETTING_user}`,
password: `${APPSETTING_pw}`,
server: `${APPSETTING_host}`,
database: `${APPSETTING_db}`,
options: 
 {
  encrypt: true
 }
};
Run Code Online (Sandbox Code Playgroud)

在Azure Webapp中,我已执行以下操作:

  • 应用程序设置>应用程序设置

输入以下内容:

  • 密钥:用户,值:{db用户登录名}
  • 密码:pw,值:{我的密码}
  • 密钥:主机,值:{SQL服务器地址}
  • 键:db,值:{db name>}

显然,以纯文本纠正无括号的工作值。

我在加载时遇到找不到数据库服务器的错误: ${APPSETTING_host}

我一直在浏览文档和教程,但在此方面它们是有限的或已过时-但是从我看过的内容来看,我正确地做到了吗?

javascript azure node.js azure-web-sites azure-sql-database

1
推荐指数
1
解决办法
3703
查看次数