Articles of 环境variables

读取和写入process.env值是同步的吗?

在nodejs中读取和写入环境variables是使用process.env对象完成的。 例如: process.env.foo评估为env var foo process.env.bar = 'blah'将env var bar的值设置为等值 delete process.env.baz删除环境variablesbaz 从试错看,缺乏callback,我认为这些行动是同步的,但我没有在文档中find它的参考。 在nodejs中env var access是同步的还是asynchronous的? 附录:为什么我认为这个问题是不平凡的 遵循以下注释:读取和写入环境variables可能意味着进程需要与操作系统进行通信,或执行某种阻塞I / O操作。 因此,询问环境variables是否作为本地对象存储在内存中而没有任何同步,或者以阻塞的方式发送到操作系统是有意义的。 此外,操作系统的实现可能会有所不同,官方文档对于非阻塞操作没有任何承诺。

不能在html scripttag中将EJSvariables推入数组中?

我正在试图build立一个与OpenLayers叠加使用一些testing坐标的数组。 这是代码: var parada = []; for(var i = 0; i < <%- coords.length%>; i++){ //First loop to fill the array var arr = [<%- coords[i].lon %>, <%- coords[i].lat %>]; //THIS IS THE ERROR LINE! … says the console… parada.push(arr); } var overlays = []; for (i = 0; i < parada.lenght; i++) { //Second […]

节点server.js不会从弹性beanstalk获得envvariables

我尝试使用AWS Elastic Beanstalk上的AWS CodeBuild启动一个node.js项目。 我把我的envvariables放在Software Configuration下的Elastic Beanstalk Configuration中。 之后,我将项目部署到Elastic Beanstalk,而我的server.js没有envvariables。 我在server.js的顶部实现了一个console.log(process.env),但是没有我在Elastic Beanstalkconfiguration中填充的envvariables。 我访问了Elastic Beanstalk日志。 另外我的日志告诉我这个: Error: Redis connection to 127.0.0.1:6379 failed – connect ECONNREFUSED 127.0.0.1:6379 at Object.exports._errnoException (util.js:1018:11) at exports._exceptionWithHostPort (util.js:1041:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1086:14) npm ERR! Linux 4.9.43-17.39.amzn1.x86_64 npm ERR! argv "/opt/elasticbeanstalk/node-install/node-v6.11.1-linux- x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v6.11.1-linux- x64/bin/npm" "run" "start" npm ERR! node v6.11.1 npm ERR! […]

使用docker-compose.test自动testingdocker镜像:缺less环境variables

我有一个Node / Express应用程序,我正在使用https://www.npmjs.com/package/dotenv-safe来包含用于开发和testing的环境variables。 我推动我的Docker存储库到https://cloud.docker.com/app/gkatsanos/和AutoTesting(我有一个docker-compose.test.yml )期间,似乎没有find环境variables: Successfully built 69f35563f12e Successfully tagged gkatsanos/server:latest Starting Test in docker-compose.test.yml… Building sut Step 1/10 : FROM node:8-alpine —> 4db2697ce114 Step 2/10 : EXPOSE 3000 —> Using cache —> ef9e0a8a09e1 Step 3/10 : ARG NODE_ENV —> Using cache —> cc6143bf9bee Step 4/10 : ENV NODE_ENV $NODE_ENV —> Using cache —> 6477a9e9657f […]

会话variables被删除

我正在使用express-session在我的NodeJS应用程序中使用Express服务器进行会话处理。 我开发了一个特定端点的API来完成会话处理,保存用户发布的数据等。 我原来用香草HTML / CSS / JS(我所熟悉的)来testingAPI的应用程序的样机。 不过,我后来用React重新编写了前端,打到了我用最初的香草应用程序编写的所有相同的端点。 但是,当我尝试使用React前端将variables保存到快速会话对象时,该variables不会保留在req.session 。 例如,在成功login尝试时,我将包含用户名的uservariables保存到req.session 。 这工作正常,如果我loggingreq.session在这一点上的控制台,我看到对象内的variables。 但是,如果我然后击中另一个端点,并尝试访问req.session.uservariables,它不存在,虽然cookie对象停留在req.session 。 然而,我难住的是,当我使用React应用程序时,这个问题才出现。 当我使用使用静态HTML页面的前端访问同一端点时,可以从任何端点访问来自req.session的uservariables。 这个问题并没有出现,当我最初开发应用程序使用静态HTML页面与链接的JS文件进行AJAX调用发送/接收数据。 React应用程序在向服务器发送数据或从服务器接收数据时没有问题,但是从React应用程序调用服务器代码时执行的方式不同。 在Express应用程序运行的同一个实例中,这两个应用程序的运行方式不同。 我的代码保存uservariables: app.post('/login', (req, res) => { username = req.body.username; password = req.body.password; queryString = 'SELECT * FROM accounts WHERE username = "' + username + '";'; connection.query(queryString, function (err, result) { if(result[0] == undefined){ console.log("user […]

在Node中从函数内部引用外部函数var

我想知道如何访问以下代码中的特定variables: 文件foo.js function a(id, callback) { //Do things if (err) { callback(err); } else { callback(null, result); } } function b(x, callback) { //Do things if (err) { callback(err); } else { callback(null, result); } } 文件question.js var id = 1; var x = 2; foo.a(id, function(err, result){ if (err) { //Do stuff } else […]

JADE:expression/节点variables/对象在玉内联JavaScript?

我在我的玉模板中使用内联JavaScript来生成谷歌地图。 我的问题是:我怎么能将节点/快递控制器中的variables/对象传递给这个内嵌JavaScript代码段? 有任何想法吗? 谢谢

node.js在res.writeHeads()函数内使用一个variables

哎哟在外面 我有以下问题: 我用这个 res.writeHead(200, { "Content-Length": template["stylecss"].length, "Connection": "Close", "X-XSS-Protection": "1; mode=block", "Server": servername, "Content-Type": "text/css" }); 将响应头文件写入客户端。 但现在,我想改变上面的代码来服务预定义的标题。 像这样的东西: var defresheads = {“X-Frame-Options”:“deny”,“X-Powered-By”:servername}; res.writeHead(200, { defresheads, "Content-Length": template["stylecss"].length, "Connection": "Close", "X-XSS-Protection": "1; mode=block", "Server": servername, "Content-Type": "text/css" }); 现在,当我运行脚本,它说: /home/dontrm/dontrm.js:47 defresheads, ^ SyntaxError: Unexpected token , 有没有另外一种方法来做到这一点?

数组variables修改node.js

我不明白为什么我的variables改变 if(chat.users[i + 1]) console.log("1: " + chat.users[i + 1].username); if(save[i+1]) console.log("2: " + save[i + 1].username); chat.users[i + 1] = save[i]; if(chat.users[i + 1]) console.log("3: " + chat.users[i + 1].username); if(save[i+1]) console.log("4: " + save[i + 1].username); 我有 1: test1 2: test1 3: test 4: test 我不明白为什么我没有 1: test1 2: test1 3: test 4: […]

隔离node.js中模块之间的全局变化

看起来好像我修改了Object.prototype,这似乎在所有模块中都是可见的。 如果这些全局变化可以被隔离,使得模块不受模块影响,这将是非常好的。 这是可能的吗?