【问题标题】:Unable to create a DB with with Mongoose无法使用 Mongoose 创建数据库
【发布时间】:2016-06-16 02:57:40
【问题描述】:

我找到了this project, 但由于某种原因,它没有使用localhost:3000/create 创建数据库。

这是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);

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    使用下面的更多代码测试您的代码

    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 }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-21
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 2017-02-17
      相关资源
      最近更新 更多