mongoose是mongo衍生而来,比mongo更方便,我认为主要是体现在可以将表的信息封装起来
http://www.cnblogs.com/zhongweiv/p/mongoose.html#node_intro
- 这是比较通俗易懂的教程,但被红莲鄙视了!所以此处写的是从红莲博客中关于mongoose代码领悟到一些皮毛
|
|
在当前文件夹中安装依赖
- 由于是用到了封装,所以需要创建一个文件夹,db,这个文件夹的作用是将和数据库有关的操作都封装好,在以后的程序中就可以直接调用了。
连接到mongo
|
|
|
|
- 此处特别需要注意的是在connect.js中加载db-config.js内容的时候必须是要用{ } ,红莲说这是解构还是组构什么的,我理解为这是类似于对象概念。
封装表,生成model,mongoose的精髓!
|
|
- 此处是调用了mongoose里的Schema生成了两张表的模型,里面是每张表的数据,required: true表示这个数据不可或缺,如果缺了在运行的时候就会报错;default表示如果该项不填会被默认使用default里的东西;
|
|
- mongoose里的另一精华,schemas写的模型通过这里就生成了对应的表的Model,但红莲写法有点跳,目前还是一知半解,最后生成了”xxxModel”
入口
1234 index.jsvar models = require('./models');module.exports = models;
- 因为封装在一个文件夹里,当其他地方调用的时候直接调用文件夹,编译器会默认调用到index.js
调用
12345678910111213141516171819202122232425 insert.jsvar {userModel} = require('./db');var {detailModel} = require('./db');var data = new userModel({name: 'Lin',email: '1019022357@qq.com'});var detail = new detailModel({age: 19,add: '广东水上乐园'});data.save().then(suc =>{console.log('success');}, err => {console.log('fail');});detail.save().then(suc =>{console.log('success');}, err => {console.log('fail');});
- 切记在引用的时候要带{ },不带是真的会吃屎的!!then是ES6的写法,和回调等价,增删改查写法类似
我觉得mongoose和mongo的最大区别是mongoose把数据库那一堆东西都封装了起来,调用的时候可以更快更方便!
缺少实践,所以只领悟了些皮毛,以下是红莲博客