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

查看:137
本文介绍了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...

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

解决方案

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 这些可视化工具就能很容易检查出来。

这篇关于node.js - 数据总是保存不进去的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆