Tag: 环境variables

如何检查节点js中是否设置了环境variables?

我会检查是否在我的nodejs express服务器中设置了一个环境variables。 在它的基础上是否设定,我会做不同的操作。 我试过这个: if(process.env.MYKEY !== 'undefined'){ console.log('It is set!'); } else { console.log('No set!'); } 我正在testing没有process.env.MYKEY …但控制台打印“它已设置”。 任何帮助?

在node.js中将数组定义为环境variables

我有一个数组,我从中提取数据。 festivals = ['bonnaroo', 'lollapalooza', 'coachella'] 因为我使用的是heroku,所以用一个环境variablesreplace它可能会更好,但是我不知道该怎么做。 使用JSONstring作为环境variables的路要走吗?

在Javascript / node.js模块之间共享variables?

我有3个节点文件: // run.js require('./configurations/modules'); require('./configurations/application'); // modules.js var express = module.exports.express = require('express'); var app = module.exports.app = express.createServer(); // app.js app.configure(…) Run.js需要两个文件,modules.js需要一个模块并创build一个variables,而app.js需要使用该variables。 但是我得到一个错误app.js导致应用程序没有定义。 有没有办法让这成为可能?

在package.json中访问环境variables

要在npm脚本中访问一个环境variables,你可以在你的package.json做这样的事情: "scripts": { "preinstall": "echo ${npm_package_name}" } 问题是只能在Unix中使用,而不能在Windows中使用%npm_package_name% 。 有没有办法做到这个独立的操作系统? 在调用命令之前,如果npm可以做这样一个可变的扩展,那将会很好。

用node.js读取传入的HTTP头

现在作为例子,我得到一个部分的关键/值作为一个JavaScript对象的响应: status: '200 OK', 'content-encoding': 'gzip' 我可以很容易地读出和logging状态消息:headers.status,但是当我尝试logging内容编码(我需要在这种特殊情况下)它的错误: headers.'content-encoding' <- obviously the quotes it doesn't like headers.content-encoding <- obviously the '-' it doesn't like 我想如何获取/读取/logging它的内容编码值? 映入眼帘, m0rph3v5

用NVM设置Sublime中的path

我在OSX上使用NVM作为我的节点版本pipe理器,除了它会在我的IDE中创build多个问题之外,这非常棒。 我正在使用Sublime Text和大多数我曾经使用的插件在/usr/local/bin查找nodejs,并且由于我使用NVM节点显然在该位置不可用,而在/Users/${User}/.nvm/${NodeVersion}/bin/node 。 我有一个更新该插件的configurationnodejspath的选项,但是当我安装另一个插件,我必须做同样的事情。 同样适用于使用CoffeeScript,LESScss等。 此外,当我通过NVM更新我的节点版本时,我必须再次更新所有configuration中的path。 NVM在尝试为我解决问题的时候已经产生了更多的问题。 更新:很长一段时间后,我终于能够解决问题,使用艾萨克斯辉煌的解决scheme – 中殿 。 nave usemain stable命令,只是足够了解你的情绪:)

在Node中包含换行符的环境variables?

我试图使用环境variables将RSA私钥加载到我的nodejs应用程序中,但换行符似乎正在被自动转义。 对于以下内容,假设PRIVATE_KEY env var被设置为以下(不是我的实际密钥): PRIVATE_KEY="—–BEGIN RSA PRIVATE KEY—–\nMIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp\nwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5\n1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh\n3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2\npIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX\nGukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il\nAkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF\nL0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k\nX6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl\nU9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ\n37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=\n—–END RSA PRIVATE KEY—–" 如果我直接调用console.log与前面的string,我得到以下输出: —–BEGIN RSA PRIVATE KEY—– MIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp wmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5 1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh 3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2 pIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX GukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il AkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF L0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k X6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl U9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ 37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0= —–END RSA PRIVATE KEY—– 你可以看到换行符正在被尊重。 但是,如果我调用console.log(process.env["PRIVATE_KEY"]) ,则输出将包含\n而不是实际换行符: —–BEGIN RSA PRIVATE KEY—–\nMIICXAIBAAKBgQCqGKukO1De7zhZj6+H0qtjTkVxwTCpvKe4eCZ0FPqri0cb2JZfXJ/DgYSF6vUp\nwmJG8wVQZKjeGcjDOL5UlsuusFncCzWBQ7RKNUSesmQRMSGkVb1/3j+skZ6UtW+5u09lHNsj6tQ5\n1s1SPrCBkedbNf0Tp0GbMJDyR4e9T04ZZwIDAQABAoGAFijko56+qGyN8M0RVyaRAXz++xTqHBLh\n3tx4VgMtrQ+WEgCjhoTwo23KMBAuJGSYnRmoBZM3lMfTKevIkAidPExvYCdm5dYq3XToLkkLv5L2\npIIVOFMDG+KESnAFV7l2c+cnzRMW0+b6f8mR1CJzZuxVLL6Q02fvLi55/mbSYxECQQDeAw6fiIQX\nGukBI4eMZZt4nscy2o12KyYner3VpoeE+Np2q+Z3pvAMd/aNzQ/W9WaI+NRfcxUJrmfPwIGm63il\nAkEAxCL5HQb2bQr4ByorcMWm/hEP2MZzROV73yF41hPsRC9m66KrheO9HPTJuo3/9s5p+sqGxOlF\nL0NDt4SkosjgGwJAFklyR1uZ/wPJjj611cdBcztlPdqoxssQGnh85BzCj/u3WqBpE2vjvyyvyI5k\nX6zk7S0ljKtt2jny2+00VsBerQJBAJGC1Mg5Oydo5NwD6BiROrPxGo2bpTbu/fhrT8ebHkTz2epl\nU9VQQSQzY1oZMVX8i1m5WUTLPz2yLJIBQVdXqhMCQBGoiuSoSjafUhV7i1cEGpb88h5NBYZzWXGZ\n37sJ5QsW+sJyoNde3xH8vdXhzU7eT82D6X/scw9RZz+/6rCJ4p0=\n—–END RSA PRIVATE KEY—– 我一直在试图find更多关于如何节点处理环境variables没有运气的信息。 如何在维护换行符的同时通过env vars加载此密钥? 如果这是不可能的,我该如何恢复它们?

在npm-scripts中传递环境variables

我有一个package.json脚本键中的以下(简化)内容: … scripts: { "start": "NODE_ENV=${NODE_ENV:=production} node start-app.js", "poststart": "echo $NODE_ENV" } … 从命令行我可以运行: npm start 这将运行我的start-app.js脚本,并将process.env.NODE_ENV环境variables设置为“production”。 看到这里的语法解释。 开始后会自动运行,如此处所述。 但poststart不会“inheritance”NODE_ENV shell环境variables,所以echo命令不会回显任何内容。 我的产品代码稍微复杂一些,但是我试图完成的是将NODE_ENVvariables从“起点”传递给依赖脚本。 任何build议/最佳做法如何做到这一点? 我不想在poststart中硬编码NODE_ENV,因为我可能想这样做: NODE_ENV=development npm start 我希望每一个“下链”都inheritance相同的环境。

将具有服务帐户的Firebase应用程序部署到Heroku(带有dotenv的环境variables)

我有一个使用Firebase服务帐户的节点应用程序。 我想部署到Heroku的应用程序,但我不想公开我的密钥。 我直接从公共github回购部署,所以我不想在部署中包含服务帐户文件。 我可以采取服务帐户json文件,使每个属性的环境variables,将这些variables添加到Heroku,并部署它。 一切都很好(在我的firebase应用上授权新的Heroku域之后),但有没有更好的方法来做到这一点? 这是有效的,但这样做很痛苦(复制和粘贴每个variables并移动它)。 我错过了一个更简单的方法来做到这一点? 这是我正在做的改变。 从这一行中,从文件中提取证书: admin.initializeApp({ credential: admin.credential.cert('./path/firebase-service-account.json'), databaseURL: "https://my-firebase-app.firebaseio.com" }); 对于这个从环境variables中引入所有相同的东西的对象: admin.initializeApp({ credential: admin.credential.cert({ "type": process.env.FIREBASE_TYPE, "project_id": process.env.FIREBASE_PROJECT_ID, "private_key_id": process.env.FIREBASE_PRIVATE_KEY_ID, "private_key": process.env.FIREBASE_PRIVATE_KEY, "client_email": process.env.FIREBASE_CLIENT_EMAIL, "client_id": process.env.FIREBASE_CLIENT_ID, "auth_uri": process.env.FIREBASE_AUTH_URI, "token_uri": process.env.FIREBASE_TOKEN_URI, "auth_provider_x509_cert_url": process.env.FIREBASE_AUTH_PROVIDER_X509_CERT_URL, "client_x509_cert_url": process.env.FIREBASE_CLIENT_X509_CERT_URL }), databaseURL: "https://my-firebase-app.firebaseio.com" }); 这是用Heroku的服务帐户部署Firebase应用程序的最佳做法吗? 我正在使用dotenv节点模块来完成这一点。

如何使用.env文件的nodemon?

我正在使用.env文件来保存服务器的环境variables。 这工作,如果我与工头启动运行服务器。 但是它不适用于nodemon。 我想使用nodemon,因为它在修改服务器时会自动重新启动。 我怎样才能让nodemon使用.env文件?