Articles of 环境variables

vars在Nodejs中存储在哪里?

在任何Web浏览器中执行以下脚本都会导致'wee'被发送到控制台。 在节点中发送{} 。 var d = 'wee'; console.log(this.d); 我意识到,在这种情况下, this指的是导出对象。 我知道globalvariables,这不是我想要访问的。 另外,上面的脚本也没有在全局对象上设置d 。 它到底在哪里? 我可以通过console.log(d);明确地访问它console.log(d); 在上面的脚本中,但似乎没有任何理由,在一些非标准的空间里隐藏起来。 我也意识到,删除var会在global对象上声明d ,这是预期的行为,尽pipe在顶级作用域将其值存储在与“裸”variables不同的位置上的var看起来很愚蠢。 我的意思是,模块系统应该是防止全球污染的一种数字预防措施。 这里打破这个模式似乎很容易,做一些标准是很困难的。 d也没有在module对象上声明。 我没有理由为什么我要问这个问题,但我会回答第一个巨魔来与“但为什么你想做的durrrr”。 var d = {}; d.bleep = 'y'; var a = Object.keys(d); d.bloop = 'y'; d.blop = 'y'; var b = Object.keys(d); // c = b – a; var c = b.filter(function (item) { […]

Grunt环境variables不会被设置,直到所有的任务加载

我在我的项目中使用npm模块grunt env和load-grunt-config 。 grunt env为你处理环境variables,而load-grunt-config处理,为你加载gruntconfiguration。 你可以把你的任务放到其他文件中,然后load-grunt-config将它们捆绑在一起,并且有很多的负载并且为你消耗。 您也可以创build一个aliases.js文件,将您想要合并为一个任务的任务一个接一个地运行。 它与原始Gruntfile.js的grunt.registerTask任务类似。 我把所有的grunt任务放在一个单独的grunt/文件夹下,并且在主Gruntfile没有额外的子文件夹,正如Github上的load-grunt-config README.md所build议的那样。 这是我瘦身的Gruntfile : module.exports = function(grunt) { 'use strict'; require('time-grunt')(grunt); // function & property declarations grunt.initConfig({ pkg: grunt.file.readJSON('package.json') }); require('load-grunt-config')(grunt, { init: true, loadGruntConfig: { scope: 'devDependencies', pattern: ['grunt-*', 'time-grunt'] } }); }; 从理论上讲,将所有这些文件设置为load-grunt-config加载的正确方式应该与只有一个Gruntfile.js 。 不过,我似乎遇到了一点麻烦。 似乎在env任务下设置的环境variables不会为随后的grunt任务设置,而是由时间node处理其任务(在本例中为express服务器)设置。 grunt env任务: module.exports = { // environment variable values […]

在node.js中设置一个环境variables,然后在terminal中使用它?

那么我想在使用node.js执行js文件的过程中添加一个环境variables。 类似于:process.env ['VARIABLE'] ='value'; 我正在使用terminal运行使用模块的js文件,我可以设置variables,然后在js文件执行期间使用它,但我想设置variables使用“process.env”,然后当执行结束,我想用在terminal,或在另一个JS进程。 我知道可以使用child_process.exec,并使用SET(Windows)或EXPORT(Mac和Linux),但只是问如何可能,可能是可能的,或者使用哪个devise或过程来添加它,只是使用“process.env”。 在此先感谢,伙计们。

在node.js中共享对象并避免全局性

在我的路由器/控制器中,在下面的片段( dbvariables)中共享数据库连接的最合适的方式是什么,而不将dbvariables转换为全局variables? var mongo = require('mongoskin'), db = mongo.db(config.db.adress); app.use(function(req, res, next) { db.open(function(err, data) { (err) ? res.send('Internal server error', 500) : next(); }); }); // Setting up controllers here app.post('/users', require('./controllers/users').create); 来自PHP的背景,我来思考dependency injection ,但我不知道如果这是适当的节点。

如何将variables传递到NodeJS模块?

在我的一个JS文件中包含另一个。 如何在包含的模块中设置variables? 我认为做这样的事情会起作用 var mymodule = require('mymodule.js'); mymodule.myvariable = 'test'; 然后在mymodule this.myvariable === 'test'; 但是这不起作用,它是undefined 。 将值传递给模块的各种选项有哪些? 我可以将variables作为参数添加到myModule中调用的每个函数中,但这并不理想。 有没有办法做到这一点没有全局variables,所以我可以在各种所需的模块独立设置variables,像这样? var mymodule1 = require('mymodule.js'); var mymodule2 = require('mymodule.js'); mymodule1.myvariable = 'test1'; mymodule2.myvariable = 'test2';

Node Express MongoDB本地驱动程序 – 在哪里打开数据库连接?

我想在app.js文件中通过Node-Mongo-Native-Driver打开并初始化数据库,然后将其保持打开并读取路由。 我把下面的代码放在app.js文件中,并打包app.gets,以便在打开数据库时使它们可用: var mongoClient = new MongoClient(new Server('localhost', 27017)); mongoClient.open(function(err, mongoClient) { var db1 = mongoClient.db("dev-db") , products = db1.collection('products'); app.get('/', routes.index); app.get('/users', user.list); }); 当我尝试读取我得到的index.js路由中的数据库时 ReferenceError: products is not defined 我认为index.js应该能够访问产品,因为它是在外部函数中定义的,因为在初始化中包装了app.gets。 除了第二个问题:MongoClient.open和MongoClient.connect有什么区别?

node.js传递variables

我正在寻找一些经验丰富的node.js程序员的方向。 我遇到的最大问题是将variables传递到单独的模块中。 例如在我的server.js我有以下几点: var db = mongoose.createConnection('localhost','test'); 现在我没有在server.js文件里面运行我的路由,他们被分成了自己的文件。 所以对于一个博客的例子可能是这样的: app.get('/blog/post/:id',function(req,res){ //do something here } 现在就是问题出现的地方。我不想在每个路由中设置数据库连接,更不用说我会认为这会造成大量的连接。 我该如何处理这个问题,是否有一个样例“真实世界”应用程序在那里,因为我似乎无法find任何关于这一点,我知道人们之前必须有这个问题。 我知道节点caching模块,但我不能想象它会caching连接,因为它是在自己的模块。 我创build了一个只保存站点configuration的configuration模块,因此需要这个我需要的地方不是问题。 我想还有其他的事情,我想要做到这一点,所以最好现在就明白这一点。 任何帮助表示赞赏。

Javascript中的ENVvariables等价

在你之前,我已经完成了我的研究( Javascript ENVvariables )。 我知道使用Javascript访问系统环境variables是不可能的。 我正在使用Yeoman来开发一个Javascript库。 该库适用于Google Maps API,我的一些testing要求将Google Maps API作为依赖项。 要加载Google Maps API脚本,您需要一个API密钥。 现在,我的代码位于我的Github,我真的不希望有我的API密钥作为代码的一部分。 在运行Grunt时,是否有任何Node模块能够将环境variables注入到我的testing中? Node.js中是否有任何ENVvariables等价物? 这是一个需要JS ENVvariables解决scheme的例子。 还有其他方法可以解决这个问题,但是我特别寻找这种types的解决scheme 。 编辑:最重要的是,当我使用grunt运行testing时,如何将这些ENVvariables自动加载到我的程序中 谢谢!

如何使用travis-ci的.travis.yml为Node.js应用程序提供环境参数?

我使用travis-ci来testing我的node.js应用程序。 因为应用程序需要使用Access Key和Secret Key进行login才能testing,所以我需要在travis-ci的.travis.yml文件中指定这两个键。 那么我该怎么做呢? 以及如何在Node中获取这些环境参数? 像这两个参数一样: https : //github.com/ikbear/nodejs-sdk/blob/feature/copy_and_move_file/test/rs.test.js#L22 我想要像这样在.travis.yml中指定它们: language: node_js node_js: – 0.8 – 0.6 – 0.4 env: – QINIU_ACCESS_KEY = '2FRuiVGEsA511NS9pNd2uvuSB3k5ozXE_DHCH8Ov' QINIU_SECRET_KEY = 'CIRtcmymB3VeIfXebFvYxmMmH9u2oLKW6rffVvoK' 那么我怎么能从我的这个testing文件中得到QINIU_ACCESS_KEY和QINIU_SECRET_KEY? https://github.com/ikbear/nodejs-sdk/blob/feature/copy_and_move_file/test/rs.test.js

“无法findPython可执行文件…” – npm安装挂起

我正在使用“npm install”来下载和编译我写的一个小型node.js应用程序的所有依赖项。 我使用的“package.json”文件是正确的,并包含所有需要的信息。 其中一个要安装的软件包具有“node-gyp”作为依赖项,所以我以前安装了“python2”软件包。 现在,在某个时候,我开始收到错误消息: > node-gyp rebuild gyp ERR! configure error gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable. gyp ERR! stack at failNoPython (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:103:14) gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:42:11 gyp ERR! stack at F (/usr/lib/node_modules/npm/node_modules/which/which.js:40:25) gyp ERR! stack at E (/usr/lib/node_modules/npm/node_modules/which/which.js:43:29) gyp ERR! stack at […]