Tag: 环境variables

variables不会设置

我有一个类似于这个节点的对象: unique_obj={ unique:true, change:function(){ this.unique=false; console.log(this.unique); } } unique_obj.change(); 但控制台仍然logging为真。 我没有在我的代码中的任何asynchronous函数,除了从一个文件读取数据,调用我的主函数读取其他的一切。 我已经介绍了VS 2015中的代码,看起来variables没有被修改。 可能是什么罪魁祸首? 我无法弄清楚。 在整个脚本中只有一个名为unique的variables和一个unique_obj实例(没有任何其他脚本的引用)。

从不同的路线访问Express会话是不确定的?

我试图实现无限滚动。 在我的第一条路线中,我从数据库中加载5个元素,并存储上次看到的项目的ID。 要加载更多的数据getNextHomeContent被调用,但由于某种原因req.session.lastseen未定义。 server.js var express = require('express'); var session = require('express-session'); var app = express(); var mongoose = require('mongoose'); var logger = require('morgan'); var bodyParser = require('body-parser'); var cors = require('cors'); //imports database configuration var databaseConfig = require('./config/database'); //defines route file to use var router = require('./app/routes'); //connect to datbase mongoose.connect(databaseConfig.url); app.listen(process.env.PORT || 8080); […]

Brunch将NODE_ENV或环境variables暴露给javascript

我正在写一个npm脚本来执行早午餐构build。 我想传递一个环境variables,以便应用程序知道默认使用哪个URL(这组URL可以根据来自UI的用户请求而改变)。 这是我的npm脚本安装到目前为止(我在Windows上): "scripts": { "build:localhost": "SET NODE_ENV=localhost && brunch build", "build:develop": "SET NODE_ENV=develop && brunch build", "build:production": "SET NODE_ENV=production && brunch build" } 如果我npm run build:localhost和console.log(process.env.NODE_ENV); 在我的早午餐config.js,我得到localhost ,我所期望的。 但是相同的console.log(process.env.NODE_ENV); 在我正在编译的JavaScript文件之一返回development 。 这不是我所期望的 – 我希望它是localhost 。 如何将我设置的NODE_ENVvariables传递给我的JavaScript代码? 更一般地说,我怎么能提供一个variables,以我的早午餐的JavaScript代码? brunch命令的–env标志似乎只是在brunchconfiguration的overrides块中使用了哪个设置。 UPDATE 我可以用jsenv-brunch来做到这一点,感谢@migore的这个build议 ,但是我想知道NODE_ENV是否应该像我描述的那样默认是这样的,为什么呢?

如何在网站上使用.ENV文件

我做了几个node.js机器人和web应用程序,它们使用.envvariables和dotenv包来保存所有的API密钥。 不过,我目前正在一个网站上使用node.js与browserify和这种方法似乎并没有工作。 每当我尝试将值输出到控制台或使用代码中的值,它将返回未定义。 我如何解决这个问题,或者如果.env的不在网上工作,我将如何隐藏这些值? 我的.env例子 ID = B1CRL2WDIW2553 SECRET = 41445d2b99b33ede3ebce0421900b8e9 我的例子 const dotEnv = require('dotenv').config({path: './.env'}); console.log(process.env.ID); 返回语句的例子

从开发切换到生产环境时,使用grunt切换HTML元素

我想在grunt中有一个开发和生产设置。 我已经想出了在开发过程中连接,制作和压缩我的JS以构build和美化我的库的所有问题。 我想要做的就是能够在应用程序入口点无缝地切换我的Js源代码。 我有 <!–<script data-main="js/main" src="js/libs/require.js"></script>–> <script src="js/main-built.js" ></script> 当我切换环境时,我正在手动切换注释。 我想自动化这个。

如何在JavaScript中从模块中导出variables?

根据这篇文章,我们知道variables可以从JavaScript中的一个模块导出: // module.js (function(handler) { var MSG = {}; handler.init = init; handler.MSG = MSG; function init() { // do initialization on MSG here MSG = … } })(module.exports); // app.js require('controller'); require('module').init(); // controller.js net = require('module'); console.log(net.MSG); // output: empty object {} 以上代码在Node.js中,我的controller.js有一个empty object 。 你能帮我弄清楚这个原因吗? UPDATE1 我已经更新了上面的代码: // module.js (function(handler) { // […]

如何在基于Nodejs中的环境variables的Angular中插入dynamic脚本

我在一个Angular应用程序的index.html文件底部有一个脚本,我想根据Node中的一个环境variables进行更改。 我想用一个公共api键和另外一个用于生产。 我使用相同的grunt生成的分期和生产,所以我不知道是否dynamic更改构build常量是build议这里是最好的解决scheme。 有关如何处理这个问题的任何想法? 当环境variables是NODE_ENV = production时,插入这个: <script> Stripe.setPublishableKey('pk_live_NN4j94VX3mtz2wJtIO3bmH'); </script> 当环境variables是NODE_ENV = staging时,插入这个: <script> Stripe.setPublishableKey('pk_test_LgtEvbZwjC2GaKQYE3I6NnzuA'); </script>

grunt-ng-constant不会生成configuration脚本

我想在我的AngularJS中使用环境variables来做环境特定的configuration。 我正在使用使用Grunt的Yeoman工作stream程,而grunt-ng-constant插件旨在帮助进行环境特定的configuration。 在本教程中 ,我设置了相应的Grunt文件,但是当我在控制台中运行grunt serve时, config.js没有写入/app/scripts/ 。 没有config.js ,我不能将环境variables注入到angular度应用程序中。 这是我的Gruntfile的一个片段: module.exports = function (grunt) { // Time how long tasks take. Can help when optimizing build times require('time-grunt')(grunt); // Automatically load required Grunt tasks require('jit-grunt')(grunt, { useminPrepare: 'grunt-usemin', ngtemplates: 'grunt-angular-templates', cdnify: 'grunt-google-cdn' }); // Configurable paths for the application var appConfig = { app: require('./bower.json').appPath […]

MongoDB插入variables名作为键(Node.JS)

Node.JS,MONGODB, 不使用Mongoose 。 我有一个我正在保存的文件。 当我使用UPSERT时,它将如此构build数据: { "_id" : ObjectId("573a123f55e195b227e7a78d"), "document" : [ {"name" : "SomeName" } ] } 当我使用INSERT时,将其全部插入到根级别上: { "_id" : ObjectId("573a123f55e195b227e7a78d"), "name" : "SomeName" } 这显然会导致很多不一致之处。 我尝试了各种各样的东西。 我已经尝试了各种方法,如findOneAndReplace,用Upsert更新,我试过replace$ setOnInsert。 当Upsert似乎参与时,这一切都是一样的。 我试图使用文档[0]来访问数组的第一个块,但是会引发错误…'意外令牌[' 我已经尝试了各种方法,通过各种文档挖掘了几个小时,并且search了其他人有这个问题的高低,但似乎没有任何人logging良好的问题。 任何人有任何build议,以确保所有的字段都在根级别,而不是嵌套在variables名下? 下面的相关代码。 findReplace: function(db, document, collection) { var dbCollection = db.collection(collection); var filter = document.name; return new Promise(function(resolve, reject) { dbCollection.updateOne({ […]

在Node.js中访问当前正在执行的“请求”或“线程”,就好像它是全局的一样?

在Rails中,当前线程被用来存储全局variables(我知道,全局variables是邪恶的,但有时是必要的)。 Thread.current[:authlogic_scope] = scope 以下是一些使用它的地方: active_record / scoping.rb#L18 authlogic /会话/ activation.rb#L29 问题是,你可以在Node.js中做类似的事情吗? 具体来说,在一个快速应用程序 保持对当前请求(或当前线程)的引用的最佳方式是什么? 在expression式中,您正在使用请求/响应对象的callback来避免设置全局variables,这是有道理的: var express = require('express'); var app = express.createServer(); app.get('/', function(request, response) { response.send('Hello World'); }); 这个问题是关于build立一个用于caching数据库logging(限定在当前HTTP请求/当前用户)的“身份映射”。 在Rails中,他们可以通过保持身份映射的作用域为Thread.current ,并且因为所有事物都是同步的。 有没有办法在Node.js中做到这一点? 一种方法是将request传递给每个函数。 对于我个人而言,这样做太复杂了,我想尽可能避免这种情况。 另一种方法是重新定义您要在自定义JavaScript函数中使用的所有variables,类似于您查看模板的方式(使用模板定义感觉像全局variables的variables)。 但是对于我的特殊情况来说,这会比有帮助的更困惑。 第三种方法是将其设置为只能由当前HTTP请求或当前线程访问的某个全局variables。 这是可能的Node.js? 如果没有,还有什么其他方法可以完成同样的事情? 基本上,我希望能够做到 App.User.where({createdAt: {'>=': _(2).days().ago()}}).all() 并让它在内部检查一些node.js的process.CURRENT_REQUEST ,它的作用域是当前的请求, App.User查询可以存储它的结果(以及任何其他模型可以存储它们的结果,所以如果它们被再次请求,它不会命中数据库)。 我也希望能够以与Authlogic相同的方式传递当前用户,所以无论何时创build一个logging,createdById字段将被自动(内部)设置为process.CURRENT_REQUEST.currentUser 。