我用以下命令调用我的 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”在运行时未定义。
a=5 node index.js
Run Code Online (Sandbox Code Playgroud)
$env:a="5";node index.js
Run Code Online (Sandbox Code Playgroud) 假设有一个变量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中提供了所需的输出.
有人可以帮忙解决这个问题或提出另一种方法吗?
我正在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)
任何形式的帮助表示赞赏。
笔记:
我已经在连接到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中,我已执行以下操作:
输入以下内容:
显然,以纯文本纠正无括号的工作值。
我在加载时遇到找不到数据库服务器的错误: ${APPSETTING_host}
我一直在浏览文档和教程,但在此方面它们是有限的或已过时-但是从我看过的内容来看,我正确地做到了吗?