简单的db-mongo查询出错
Simple db mongo query gone wrong?
嘿,我正试图从我的index.js文件中查询数据库(mongodb),然后将查询的值返回到一个变量中,这样我就可以使用该变量在网站上显示人员信息。我目前有这个代码,但它给我带来了问题。试图找出如何以正确的方式查询它。我正在查询电子邮件,但我想根据电子邮件查询提取名字。我使用node.js和jade作为我的视图引擎。
var mongoose = require('mongoose')
, db = mongoose.createConnection('mongodb://localhost/test5');
var user = function (name) {
var name = db.users.find({ email: 'works@gmail.com' }).pretty();
console.log(name);
return name;
};
exports.index = function(req, res) {
res.render('index', { title: 'Weblio', user: user});
};
看起来你在使用Mongoose,所以我建议你使用他们的查询功能,这在过去对我来说很好。它还有助于为存储在MongoDB中的数据建立Mongoose模型。
试试这个(注意:它未经测试,但我从一个正常运行的程序中提取了它):
var mongoose = require('mongoose')
, Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost/test5');
var UserSchema = new Schema({
email: { type: String, index: true },
firstName: { type: String },
lastName: { type: String }
});
mongoose.model('User', UserSchema);
var User = mongoose.model('User');
exports.index = function(req, res) {
User.findOne({
email: "someone@something.com"
}, function(err, user) {
if(err) {
res.send(err);
} else {
console.log(user.firstName);
res.render('index', {title: 'Weblio', user: user.firstName});
}
});
}
节点中几乎所有的IO都是异步的,这意味着您的find方法不会返回实际结果,而是一个promise,或者它期望使用结果调用一个回调。
试试这个:
var mongoose = require('mongoose')
, db = mongoose.createConnection('mongodb://localhost/test5');
exports.index = function(req, res) {
db.users.find({ email: 'works@gmail.com' }, function(err, data){
if(err){
return req.send(500);
}
res.render('index', { title: 'Weblio', user: JSON.stringify(data)});
});
};
相关文章:
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- javascript中的数组出错
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- j查询utc offSets的时差
- 如何有效地将游戏数据存储在URL查询字符串中
- 如何处理node.js节点mongodb中的连接和查询队列
- 如何从 HTML 查询中删除项目
- 从查询字符串参数推断出正确的数据类型
- 在Meteor项目中安装并包含npm模块后出错
- 解析JSON并从中删除对象会出错
- 将curl查询转换为jQuery.ajax()
- AngularJS指令出错-无法读取属性'编译'的未定义
- 我的弹性查询中出错 - 范围返回错误的请求
- j查询移动部队重新加载页面“加载页面时出错”
- 从数组查询获取对象 JSON 值时出错
- 查询不存在的属性;不要总是出错
- 简单的db-mongo查询出错
- 使用锚标记创建查询字符串时出错
- j查询菜单效果出错
- 英特尔 XDK j查询移动式更改页面时出错