为了账号安全,请及时绑定邮箱和手机立即绑定

mongoose 无法使用save存数据

var mongoose = require('mongoose');    //引用mongoose模块
mongoose.Promise = global.Promise;
var db = mongoose.createConnection('localhost','test'); //创建一个数据库连接
db.on('error',console.error.bind(console,'连接错误:'));
db.once('open',function(){
console.log('open')
});

var PersonSchema = new mongoose.Schema({
name:String   //定义一个属性name,类型为String
});
var PersonModel = db.model('Person',PersonSchema);
//如果该Model已经发布,则可以直接通过名字索引到,如下:
//var PersonModel = db.model('Person');
//如果没有发布,上一段代码将会异常


var personEntity = new PersonModel({name:'Krouky'});
//打印这个实体的名字看看
console.log(personEntity.name); //Krouky

personEntity.save(function(err){
console.log(err)
})


就这段代码。在我这里,不会报错,

运行结束以后,数据库中没有数据

正在回答

7 回答

不要用createConnection 使用mongoose.connect, 如下:

const db = mongoose.connect("mongodb://127.0.0.1:27017/test",{
   useMongoClient: true
});
db.on("error",function(error){
   console.log("数据库连接失败:"+error);
});

db.on("open",function(){
   console.log("数据库连成功");
});

0 回复 有任何疑惑可以回复我~

你是不是漏掉了pre那个函数里面的next();

3 回复 有任何疑惑可以回复我~

var personEntity = new PersonModel({name:'Krouky'});

换成

var personEntity = new PersonModel({name:'Krouky'},false);

试试

2 回复 有任何疑惑可以回复我~
#1

O凤_凤O

首先谢谢你,通过你的方法成功地解决了我的问题,但是能说一下,为什么加了false就可以了吗?谢谢
2018-01-20 回复 有任何疑惑可以回复我~
#2

HoSalt 回复 O凤_凤O

?忘了,之前学的时候可能遇到过类似的问题,去搜一下第二个参数是干什么用的
2018-01-23 回复 有任何疑惑可以回复我~

personEntity.save()去掉里面回调函数试试呢,这个返回Promise

0 回复 有任何疑惑可以回复我~

用 robomongo 可视化工具刷新后还是没有看见数据

0 回复 有任何疑惑可以回复我~

CONNECTION.model("Sth", Sth)

找到了,用你的connection 获取 model

0 回复 有任何疑惑可以回复我~

我也是啊,这个数据库是不是不好使了?要黄摊了,不干了?

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
node+mongodb 建站攻略(一期)
  • 参与学习       91860    人
  • 解答问题       889    个

带你完整实现一个从前端到后端的项目,初中级前端开发工程师必学课程

进入课程

mongoose 无法使用save存数据

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信