Tag: 数据库

mongoose关系

我正在学习Mongodb,我正在使用Mongoose,我想创build一个非常dynamic的注册过程。 我pipe理使用护照注册的第一步,一切正常,我创build了用户,它在数据库中。 现在我的注册过程将继续,用户必须select一个“angular色”:你是什么types的用户? 有两个选项:“基本”和“高级”。 基本只有3个属性,高级有3个基本属性加上其他几个。 我需要扩展userSchema或添加基于该angular色的新字段,但一个星期后它不工作,我尝试了许多NPM如: mongoose-relationship或mongoose-schema-extend 。 这基本上是我所拥有的: userSchema = new Schema({ id : Number, email : { type: String, required: true }, role : { type: String, required: true }, profile : { … } // Profile fields are different for each role. }); // profile 1 basicSchema = new Schema({ info1 : […]

保持用户匿名 – 安全数据库唯一选项 – 一般思路?

我正在研究一个Web应用程序,在那里正在考虑如何保持用户的身份完全匿名。 但是我已经得出结论 ,除了专注于保护数据库免遭黑客攻击之外,我可以做的不多。 这是在StackOverflow的一般共识,还是有我可能错过了任何方法? 所以我想: 然而,直接的encryption哈希和盐会导致与用户联系的各种原因。 密码重置。 我可以保存恢复问题/答案,但当然,答案将需要可读性,以打败事情。 还有一点就是说他们忘记了这些安全问题或我在注册时产生的用户名。 没有办法将他们链接到一个帐户。 还有什么想到(假设我征服了上述)限制重复的用户。 如果我在加工过程中进行哈希/腌制search会相当“沉重”? 我可以简单地保留一个使用的电子邮件的长长的名单,但那么问题再次链接到一个现有的帐户? 有兴趣听到你的想法。 谢谢。

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模块,因此需要这个我需要的地方不是问题。 我想还有其他的事情,我想要做到这一点,所以最好现在就明白这一点。 任何帮助表示赞赏。

我应该使用哪个数据库node.js?

我应该使用哪个数据库node.js? 我正在讨论MySQL和MONGO DB。

我想从本地客户端工具连接openshift mongodb数据库

我有我的溢价openshift帐户 我在openshift有所有types的访问 我有SSH密钥和用户的凭据 我有MongoVUE&Robomongo和其他客户端工具来打开MongoDB数据库。 当我尝试打开任何本地mongodb数据库,那么它的工作正常 但我想直接连接我的mongodb数据库的openshift服务器到mongoVUE或其他任何东西,所以我可以看到哪些数据在我的服务器数据库。 我已经尝试了很多次连接本地,但它可以连接到openshift,但不能连接与MongoDB数据库,所以请提供一些好的和确切的步骤,所以我可以连接它。

对象#<MongoClient>没有方法“打开”

我一直在尝试使用Node.js,Express.js和MongoDB创build一个简单的站点。 我是新来的这些技术,一直有问题设置数据库这是我的index.js文件中的代码片段: var http = require('http'), express = require('express'), path = require('path'), MongoClient = require('mongodb').MongoClient, Server = require('mongodb').Server, CollectionDriver = require('./collectionDriver').CollectionDriver; var app = express(); app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); var mongoHost = 'localHost'; var mongoPort = 27017; var collectionDriver; var mongoClient = new MongoClient(new Server(mongoHost, mongoPort)); mongoClient.open(function(err, mongoClient) { […]

人们使用Node.js部署关系数据库更改的方式有哪些?

我一直在越来越多的投入到Node.js和最近托pipe服务,如Heroku和Nodejitsu,并一直在试图找出如何最好地部署数据库更改postgres或MySQL。 在npm下有几个迁移项目,我可以看到; 然而,似乎所有的东西都是非常麻烦的,或者只是不起作用。 我目前在npm上pipe理Monarch迁移项目,但是目前它本身就是bug,而且我开发这种工具的经验还在其他更程序化的语言中。 那么人们在这些环境中使用什么来部署对其数据库的更改呢? 什么为人工作? 我正在寻找更好地了解目前的情况/过程是什么样的。

如何让node.js使用mongoose连接到mongolab

我一直在尝试使用mongoose(node.js和mongodb模块)。 并试图得到与蒙古的连接起来和运行。 我尝试了我的app.js文件的顶部以下,但我似乎无法进入db.on函数。 global.mongoose = require('mongoose'); var uri = 'mongodb://username:password#####@ds.mongolab.com:#####/db'; global.db = mongoose.createConnection(uri); global.Schema = mongoose.Schema; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function (callback) { console.log("db up") var userSchema = new Schema({ name : { type: String, default: '' } , password : { type: String, default: '' } }); var userModel = mongoose.model('User', userSchema); var […]

使用find()在MongoDB中search嵌套键

这将是一个愚蠢的问题,但如果我有一个这种格式的Mongo对象: { "url": "google.com", "statusCode": 301, "headers": { "location": "http://www.google.com/", "content-type": "text/html; charset=UTF-8", "date": "Fri, 22 Mar 2013 16:27:55 GMT", "expires": "Sun, 21 Apr 2013 16:27:55 GMT", "cache-control": "public, max-age=2592000", "server": "gws", "content-length": "219", "x-xss-protection": "1; mode=block", "x-frame-options": "SAMEORIGIN" } } 使用db.collections.find() ,我如何findserver密钥或嵌套在另一个密钥中的任何密钥? 我试过db.collections.find({headers:{server:"gws"}}) 我试图以所有可能的组合引用它们,但输出一直是空白的,或… 任何build议,将不胜感激。

在mongoose.js中共享和重用模式部分的策略

假设我有两个模式,例如person和company 。 他们都应该有一个address ,其中包括一个street name , number , zip和city 。 避免在两个模式定义之间复制address属性的策略是什么? 我阅读了关于子文档的内容 ,但是它们似乎(1)与一个父模式绑定,(2)总是出现在数组中。