搜尋

首頁  >  問答  >  主體

node.js - 数据总是保存不进去

var mongoose = require("mongoose");

// 连接字符串格式为mongodb://主机/数据库名
mongoose.connect('mongodb://localhost/test');

var Schema = mongoose.Schema;
//骨架模版
var movieSchema = new Schema({
    doctor   : String,
    title    : String,
    language : String,
    country  : String,
    year     : Number,
    summary  : String,
    poster   : String,
    flash    : String
})
//模型
var Movie = mongoose.model('Movie', movieSchema);
//存储数据
var movie = new Movie({
    title: '黑衣人三',
    doctor: '史密斯',
    year: 2018,
    flash: 'http://player.youku.com/player.php/sid/XNjA1Njc0NTUy/v.swf',
    country: '美国',
    language: '英语',
    summary: '好片'
})
//保存数据库
movie.save(function(err) {
    if (err) {
        console.log('保存失败')
        return;
    }
    console.log('meow');
});

控制台出现下面的提示:
Mongoose: mpromise (mongoose's default promise library) is deprecated, plug in your own promise library instead: http://mongoosejs.com/docs/pr...

也没报错,但是数据就是插不进去

高洛峰高洛峰2783 天前700

全部回覆(5)我來回復

  • 天蓬老师

    天蓬老师2017-04-17 15:18:40

    1) 增加預設連接埠27017到主機位址。即 mongodb://localhost/test
    改成 mongodb://localhost:27017/test

    2) 用程式碼測試連線情況,確保連通。例如在mongoose.connect() 之後再加這幾句:

    mongoose.connection.on('connected', function(){
        console.log('Connection success!');
    });
    mongoose.connection.on('error', function(err){
        console.log('Connection error: ' + err);
    });
    mongoose.connection.on('disconnected', function(){
        console.log('Connection disconnected');
    });

    3) 檢查資料究竟存到了哪個collection裡。我之前遇到的坑是,如果用你這句話

    var Movie = mongoose.model('Movie', movieSchema);

    的寫法,雖然你指定存入名叫'Movie' 的collection,但可能實際存入的卻是名為'Movies' 的collection(Mongoose自動在後面加了個s )。很坑,但確實會發生。

    在 Mongodb SHELL 裡用 show collections 等指令,或是藉助 RoboMongo, MongoBooster 這些視覺化工具就能很容易檢查出來。

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 15:18:40


    mongoose.Promise = global.Promise;
    加在
    mongoose.connect('mongodb://localhost/test');
    之前

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 15:18:40

    資料取不出來也存不進去

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 15:18:40

    應該是少存了poster這一項

    回覆
    0
  • PHPz

    PHPz2017-04-17 15:18:40

    提示是告訴你mongoose 已經不在內建實現promise了需要你自己添加第三方promise插件
    你用的document.save可能是個返回promise的方法
    你改成Module.create

    回覆
    0
  • 取消回覆