在node.js中设置环境变量然后在终端中使用它?

2023-11-27

好吧,我想在使用 node.js 执行 js 文件期间添加环境变量。

就像是: process.env['VARIABLE'] = '值';

我使用终端使用模块运行 js 文件,我可以设置变量,然后在 js 文件执行期间使用它,但我想使用“process.env”设置变量,然后当执行结束,我想在终端中使用它,或者在另一个js进程中使用它。

我知道可以使用 child_process.exec,并使用 SET (Windows) 或 EXPORT (Mac & Linux),但只是询问它如何可能,或者使用哪种设计或过程来添加它,只需使用“进程.env”。

预先感谢各位。


unix 权限模型不允许子进程(您的 node.js 应用程序)更改其父进程(在终端内运行的 shell)的环境。这同样适用于当前工作目录、有效 uid、有效 gid 和其他几个每个进程的参数。 AFAIK 没有直接的方法来做你所要求的事情。您可以执行诸如打印命令以将其设置为标准输出之类的操作,以便用户可以轻松地将 shell 命令复制/粘贴到他们的终端中,但您最好的选择是在一个单独的问题中解释您试图解决的更广泛的问题,并让人们知道告诉您完成该任务的可行方法,而不是尝试更改父进程的环境。

一种可能的解决方法很简单,就像从终端运行节点程序一样:

export SOME_ENV_VAR="$(node app.js)"

并有app.js只需通过打印所需的值process.stdout.write.

第二个 hack 是一个包装 shell 脚本,大致如下:

app.sh

#!/bin/bash
echo app.sh running with SOME_ENV_VAR=${SOME_ENV_VAR}
echo "app.sh running app.js"
export SOME_ENV_VAR="$(node app.js)"
exec /bin/bash

app.js

console.log("Some Value at " + Date());

在终端的交互式 shell 中运行它

echo $SOME_ENV_VAR

exec ./app.sh
app.sh running with SOME_ENV_VAR=
app.sh running app.js

echo $SOME_ENV_VAR 
Some Value at Thu Mar 27 2014 08:13:01 GMT-0600 (MDT)

也许这些会给你一些可以使用的想法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在node.js中设置环境变量然后在终端中使用它? 的相关文章

  • 变量可以存储在图像或 div 标签中吗?

    我已经成功地创建了一个巨大的div其中包含许多小divs 附加到它上面 所以它创建了一个网格 我的目标是能够在每个较小的变量中存储两个变量divs 瓷砖 目前 我可以通过更改较小的图块来存储一个值innerHTML 但是 我希望能够存储的不
  • 在 JavaScript 中按名字(按字母顺序)对数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个数组 请参阅下面的数组中的一个对象 我需要使用 JavaScript 按名字排序 我该怎么做 var user bio null email email protected cdn cgi l email
  • 基于布尔 prop 的条件字段验证

    我想要favoriteAlcohol仅当以下情况时才需要验证 需要的字段props isAdult传递给组件的是true Yup object shape favoriteAlcohol Yup string when props isAd
  • Firebase 函数 - FirebaseError:在非交互模式下运行时缺少必需的选项(强制)

    我有一个 Firebase 函数 当用户的帐户被删除时 它会删除 Firestore 数据库中用户的集合 const firebase tools require firebase tools const functions require
  • 循环结束后从头开始重新迭代 for 循环 - JS

    我有一个数组和一个对象数组 我基本上需要将数组的第一个元素映射到数组内对象的第一个元素 依此类推 两个数组的长度都可以是可变的 并且一旦循环结束 循环应该从头开始 但是 我不确定是否再次开始循环 这是我的代码 const colors 7c
  • 为什么 NodeJS 不支持 String.prototype.replaceAll?

    这个字符串方法存在于 browserland 中 但不存在于 Node 中 为什么不 它既不是全新的 也不是异国情调的 replaceAll is part of ECMA 262 src https tc39 es ecma262 sec
  • JavaScript 设置滚动高度

    在 JavaScript 中 将一个元素的滚动高度设置为另一个元素的滚动高度的正确方法是什么 直接赋值没有效果 谢谢 格雷格 直接是不可能的 scrollHeight 是一个只读属性 包含元素内容的总高度 以像素为单位 如果有元素 A 并且
  • express.js less 编译器:无法工作

    app js app use express compiler src dirname public enable less app use express static dirname public 在我的玉观中 link rel sty
  • 使用 ES6 从子级获取父类名?

    我想获取父类名称 Parent 但我只能使用此代码检索子类名称 Child use strict class Parent class Child extends Parent var instance new Child console
  • 如何仅在客户端渲染 NextJS 13 中的组件

    我目前正在开发一个项目 该项目要求我的组件对客户端频繁变化的条件做出反应 但据我所知 NextJS 13 似乎强制服务器端渲染 我尝试使用动态加载import dynamic from next dynamic and const Comp
  • @deprecated 的 mergeLatest 重构 - 不再支持 resultSelector,而是通过管道传输到映射吗?

    角度材料文档应用程序包含以下代码片段 Combine params from all of the path into a single object this params combineLatest this route pathFro
  • nodejs module.js:340 错误: 找不到模块

    我将nodejs安装在C Program Files x86 nodejs 然后我创建了一个 js 文件并将其保存在桌面中 以便在控制台中输出 hello world console log hello world 当我尝试从命令提示符运行
  • 使用 Javascript 基于 Cookie 的重定向

    我正在尝试根据 cookie 的存在创建重定向 所以当用户连接到我的网站时jonathanstevens org他们第一次被重定向到jonathanstevens org landing 代码部分 Global js function cr
  • Apex 图表自定义工具提示 - 如何获取类别名称和颜色?

    我想在 Apex Charts 中创建自定义工具提示 以下是官方文档中的建议 tooltip custom function series seriesIndex dataPointIndex w return div class arro
  • 在 React 中渲染来自 Firebase 的数据

    请帮助我渲染从 Firebase 实时数据库检索的数据 我成功从 Firebase 中以数组形式检索数据 下一步是显示数据 问题就从这里开始了 我想要显示的数据应该存储在 模块 状态 首先 它被设置为一个空数组 然后检索数据 通过 Coum
  • 包含菜单按钮的 Ag-grid 单元格

    我在我的项目中使用社区版本的 ag grid 我正在尝试在每一行的一个单元格中添加菜单按钮 单击菜单按钮时 应该会弹出菜单 其中包含编辑 删除 重命名选项 并且当单击菜单上的任何项目时 我需要触发具有行值的事件 我正在尝试创建一个将显示按钮
  • 恢复console.log()

    由于某种原因 附带的原型框架 或其他 JavaScript 代码 Magento http en wikipedia org wiki Magento正在替换标准控制台功能 所以我无法调试任何内容 在 JavaScript 控制台中写下co
  • 根据 Google Apps 脚本中的另一个数组过滤数组

    我对 JavaScript 相当陌生 可能需要一些帮助来解决我在处理 Google Apps 脚本时遇到的问题 我打算做的是根据数组过滤数据 该数组是从特定工作表中的特定单元格中获取的 其中包含我不想保留在数据中的字符串元素 换句话说 包含
  • 如何在二维数组中找到字符串?

    我有一个看起来像这样的数组 var array a b c d e f 我希望能够在数组中搜索字符串 d 并返回对应的值 c try function find str array for var i in array if array i
  • 父元素的 mousedown 事件中的 offsetX 和 offsetY 错误

    我在 mousedown 上获取 offsetX 时遇到问题 下面是我的代码 div Click the text The mouseDown function is triggered when the mouse button is p

随机推荐

  • 在用户提交的数据中不转义 & 符号是否存在安全风险?

    在显示用户生成 提交的信息时 转义其他特殊字符但不更改与号是否存在安全风险 我想让我的用户自由输入 html 实体 十六进制和十进制特殊字符 而不会给我的清理程序增加不必要的复杂性 这完全取决于数据放入的上下文 在 HTML 中 表示纯文本
  • 我们可以用二叉搜索树来模拟堆操作吗?

    我想知道我们是否可以使用二叉搜索树来模拟堆操作 插入 查找最小值 删除最小值 即使用 BST 来完成相同的工作 这样做有什么好处吗 我们当然可以 但具有平衡的 BST 最小值是最左边的元素 最大值是最右边的元素 找到这些元素是O logn
  • 在通过 loadGeoJson() 加载的功能上创建 Infowindows

    如果这是基础知识 我深表歉意 但我的 JavaScript 知识非常有限 我正在制作一个地图 该地图加载我在 ArcGIS 中创建的 GeoJSON 数据 并使用 ogr2ogr 重新格式化为 GeoJSON 我已经加载了地图并显示了 Ge
  • 如何从特定 FPS 的视频中提取帧?

    我能够提取特定的帧test mp4使用以下代码创建文件 import cv2 def get frames cap cv2 VideoCapture test mp4 i 0 while cap isOpened ret frame cap
  • 如何在 Kotlin 中向 Gson 注册 InstanceCreator?

    我可以使用代码1来保存MutableList
  • 在浏览器中加载 ionic 项目时提示错误“localhost:8100 said gap_init:3”消息

    当我在任何页面代码中进行更改时 都会显示一条提示消息 localhost 8100说gap init 3 然后我单击 确定 按钮 另外显示 5 条消息 关闭浏览器并再次打开效果良好 但进行任何更改都会显示此提示 如何修复它 提前致谢提示错误
  • 从基类指针访问子类成员 C++

    我有一系列自定义类 Student 对象 CourseStudent和ResearchStudent都继承自Student 并且Student的所有实例都是其中之一 我有一个函数来遍历数组 确定每个学生的子类型 然后对它们调用特定于子类型的
  • 将 adb 与具有相同序列号的多个设备一起使用[重复]

    这个问题在这里已经有答案了 我的电脑连接了两个设备 但是当我启动adb时 它们的序列号都是 0123456789ABCDEF When I try to install an APK the installation fails with
  • Haskell:使用 $ 的函数应用

    在下面的代码片段中 您可以看到我用 Haskell 编写的两个 collat z 函数 对于递归应用程序 我在第一个示例 collat z 中使用括号来获得正确的优先级 由于我刚刚学习了 的函数应用 我尝试使用那个东西重写函数 collat
  • 如何在 python 中创建一个加密安全的随机数?

    我正在用 python 制作一个项目 我想创建一个加密安全的随机数 我该怎么做 我在网上读到 常规随机发生器生成的数字在加密上并不安全 并且该函数os urandom n 返回给我一个字符串 而不是数字 由于您想要生成某个特定范围内的整数
  • cURL 非常慢

    有谁知道为什么 php5 下的 cURL 会如此缓慢地失败 即使在 45 秒超时时 在 speedO light 服务器上下载几 kb 文件 代码按要求放在此处 尽管我进一步提高了超时 以使脚本在执行期间不会失败 并将 useragent
  • 获取 git stash 父提交

    有没有办法检索最初创建存储的提交 使用默认命令创建存储时git stash原始提交保存在隐藏消息中 因此通常如下所示 stash 0 WIP on master abc123 This is the message of some comm
  • Java有立即调用的匿名函数吗? [复制]

    这个问题在这里已经有答案了 例如 我可能想做这样的作业 在 JavaScript 中 var x function do some searching calculating return 12345 在 Java 中 我如何使用 Lamb
  • 旋转 UIAlertView

    我创建了一个自定义 UIAlertView 通过子类化它并弄乱它的show函数 它有一些自定义子视图并且具有非标准尺寸 当我创建并显示它时 它工作正常 但是 当旋转设备时 警报会旋转 然后返回到其默认大小 任何想法要覆盖什么功能 或者我应该
  • 不带参数的类方法会产生 TypeError

    这段代码 class testclass def init self x y self x x self y y self test def test print test if name main x testclass 2 3 yiel
  • 为什么 JavaScript 中是 2 == [2]?

    我最近发现2 2 在 JavaScript 中 事实证明 这个怪癖会带来一些有趣的后果 var a 0 1 2 3 a 2 a 2 this is true 同样 以下工作 var a abc 1 a abc a abc this is a
  • 在 NumPy 中更改数组边缘的值

    我将仅使用 NumPy 工具创建一个数组 就在那里 2 2 2 2 2 2 1 1 1 2 2 1 1 1 2 2 1 1 1 2 2 2 2 2 2 这是我的代码 import numpy as np x np ones 5 5 dtyp
  • 德尔福ADO查询

    有没有比 ADO 数据集更快的迭代方法 while not ADOQuery1 Eof do begin Do something ADOQuery1 Next end 我需要扫描大约 9000 个项目的数据集 并且仅提取与一组预定义的分支
  • 在运行时从扩展坞添加/删除应用程序图标?

    是否有公共 Apple API 允许您在运行时删除应用程序的停靠栏图标 我尝试通过 NSApplication 的 dockTile 替换大小为零的空视图 但这只是擦除了停靠图标 而没有回收其空间和启动指示器 我还了解应用程序 info p
  • 在node.js中设置环境变量然后在终端中使用它?

    好吧 我想在使用 node js 执行 js 文件期间添加环境变量 就像是 process env VARIABLE 值 我使用终端使用模块运行 js 文件 我可以设置变量 然后在 js 文件执行期间使用它 但我想使用 process en