无法使用Mongoose创建数据库

无法使用Mongoose创建数据库

问题描述:

我找到了this project, 但由于某些原因,它并未使用localhost:3000/create创建数据库。无法使用Mongoose创建数据库

这是models.js:

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/autocomplete'); 
Schema = mongoose.Schema, 
ObjectId = Schema.ObjectId; 

// Person schema 
var Person = new Schema({ 
    firstname: {type: String, required: true}, 
    lastname: {type: String, required: true} 
}); 
mongoose.model('Person', Person); 
var Person = exports.Person = mongoose.model('Person'); 

,这是app.js:

var express = require('express'), 
sys = require('util'), 
app = module.exports = express.createServer(), 
models = require('./model'), 
Person = models.Person; 

var app = module.exports = express.createServer(); 
var everyone = require("now").initialize(app); 

//Configuration 
app.configure(function(){ 
    app.set('views', __dirname + '/views'); 
    app.set('view engine', 'jade'); 
    app.use(express.bodyParser()); 
    app.use(express.methodOverride()); 
    app.use(require('stylus').middleware({ src: __dirname + '/public' })); 
    app.use(app.router); 
    app.use(express.static(__dirname + '/public')); 
}); 

app.configure('development', function(){ 
    app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
}); 

app.configure('production', function(){ 
    app.use(express.errorHandler()); 
}); 

// base url and template 
app.get('/', function(req, res){ 
    res.render('index', { 
    title: 'Home' 
    }); 
}); 

// now js search function 
everyone.now.search = function(text, count, callback) { 
    // create regex for "contains" and ignore case 
    var regex = new RegExp(text.term, 'i'); 
    // execute the search 
    Person.find({firstname: regex}, function(err, docs) { 
     var names = []; 
     for(var nam in docs) { 
      // push the firstname to the array 
      names.push(docs[nam].firstname); 
     } 
     // send back via callback function 
     callback(null, names); 
    }); 
}; 

// function to create our test content... 
app.get('/create', function(req, res){ 
    var person = new Person({firstname: 'Dominic', lastname: 'Böttger'}); 
    person.save(); 
    var person2 = new Person({firstname: 'Lorem', lastname: 'Ipsum'}); 
    person2.save(); 
    var person3 = new Person({firstname: 'Heinz', lastname: 'Ketchup'}); 
    person3.save(); 
    res.redirect('/'); 
}); 

app.listen(3000); 
console.log("Autocomplete server listening on port %d in %s mode", app.address().port, app.settings.env); 

与更像码测试你的代码下面

person.save(function (err) { 
    if (err) 
     console.log(err); 
    else 
     console.log('save person successfully'); 
}); 

至于结果,日志显示save person successfully。即,将数据保存在autocompletedb下的people集合中。

> use autocomplete 
switched to db autocomplete 
> db.people.find() 
{ "_id" : ObjectId("56d78b9084ae33bc0f0d0c38"), "firstname" : "Dominic", "lastna 
me" : "Böttger", "__v" : 0 }