node mongoose 实现查询功能 修改成函数
发布于 6个月前 作者 kingche 563 次浏览
var mongoose = require('mongoose') ;    
var models = require('../models/username') ;
var User = models.User ;
mongoose.connect('mongodb://localhost/mongogroup') ;
function doquery(){
    User.find({"username":"xiaoming"},function(err,doc){
        if(doc) {   
        console.log('found it');
    };
});
}

username.js 中的内容为

var mongoose = require('mongoose') ;    
var Schema = mongoose.Schema ;  
var UserSchema = new Schema({
    username : String ,
}) ;
exports.User = mongoose.model('User',UserSchema) ;

数据库连接没有什么问题,为什么不能实现查询功能了? ps:事实上去掉function doquery(){ }是可以工作的,为什么加上后运行就是没有任何反应!

11 回复

搭车做个广告,操作mongoose必须少不了mongoomise

@bijiabo 谢谢!已经在看,顺便请教个问题: GroupModel.find({groupname:search_doc},function(err,doc){ console.log(doc); //可以正常打印出整个查询到的文档! console.log(doc.groupname); //但是不可以只打印查询到的文档groupname键的值??? }); 请问我怎样才能只打印出groupname键的值

@kingche 按理来说如果doc!==null的话应该可以打印出doc.groupname的呀 你的doc打印出来内容是什么@@?

@damngoto 哇!看起来很棒>_<

function doquery(){ User.find({"username":"xiaoming"},function(err,doc){ if(doc) { console.log(‘found it’); }) ; } 少了个大括号吧

function doquery(){ User.find({"username":"xiaoming"},function(err,doc){ if(doc) { console.log(‘found it’); } }) ; }

@jayself 上面是我写错了,如果真是少了括号的话,运行时会报语法错误的,但是实际运行了什么都没反应!当我断开net stop mongodb服务时,也立即会报错。 事实上去掉function doquery(){ }是可以工作的,为什么加上后运行就是没有任何反应!

求解决!自己顶!

@kingche

修改了一些源代码中的拼写错误之后,运行上述代码没问题。

** index.js**

var mongoose = require('mongoose');
var models = require('./username');
var User = models.User;
mongoose.connect('mongodb://localhost/mongogroup');
function doquery(){
  User.find({"username":"xiaoming"},function(err,doc){
    if(doc) {
      console.log('found it',doc);
    };
  });
};

doquery();

@bnuhero 谢谢!整了半天原来是函数未被调用的问题~好囧好囧!

回到顶部