nodejs入门-新手入门3-mongoose学习

> # 前言

  既然做后端,那么肯定要连接数据库,我使用mongoose这种nosql类型的数据库插件。

  相对来说比起学习sql命令简单些。

> # 入门

## 安装 <hr>

`npm install mongoose`即可

<br>

<br>

<br>

## 简单使用 <hr>

&emsp;&emsp;mongoose的宗旨就是先规划好schema表,然后将表model化,model化后的表就可以使用mongoose的各种命令了,比如简单的增删改查等等。

```javascript

// 我们先建个表

// /server/app/schemas/user.js

// 引入mongoose以及生成表

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

// 配置表内容,schema有2个参数,第一个参数是表内容,第二个是表配置

// 一般collection需要你配置,填表的名字

// versionKey是__v是否需要,false那么数据库中将不显示

const uesr_schema = new Schema({

userId: {

type: String,

unique: true,

require: true

},

userName: String,

school: String,

schoolId: String

}, {

collection: 'user',

versionKey: false/*此处表示不需要versionKey*/

});

// 然后将之model化

// 为了方便,一般都直接model化

module.exports = mongoose.model('user', user_schema);

```

&emsp;&emsp;好了,我们已经将表建好并且model化了,那么我们就可调用对数据库操作了。

```javascript

// /server/app/controllers/user.js

const user_model = require('../schema/user.js');

const login = async (ctx, next) => {

let req = ctx.request.body;

let user = req.user;

let pwd = req.password;

const result = await user_model.findOne({

userId: user,

password: pwd // 一般密码都是会加密的,我这边简化下

});

if (result) {

ctx.body = {

code: 1,

msg: '登陆成功',

data: result.userMsg

}

} else {

ctx.body = {

code: 0,

msg: '账号或密码不正确'

}

}

}

module.exports = {

login

}

```

&emsp;&emsp;然后将控制器controller生成的方法放到api的路由中即可

```javascript

// /server/api/user.js

const user_controller = require('../app/controllers/user.js');

const Router = require('koa-router');

const router = new Router();

router.post('/login', user_controller.login);

module.exports = router;

```

&emsp;&emsp;最后放到app.js中用app.use()处理下就完成了

```javascript

// /server/app.js

const mongoose = require('mongoose');

const Koa = require('koa');

const cors = require('koa2-cors');

const bodyParser = require('koa-bodyParser');

const app = new Koa();

mongoose.connect('mongodb://localhost:27017/demo-db', err => {

if (err) throw err;

console.log('成功连接数据库');

});

app.use(cors());

app.use(bodyParser());

const user_api = require('./api/user.js');

// koa-router的api要求先调用下routes,然后再调用下allowedMethods

app.use(user_api.routes()).use(user_api.allowedMethods());

app.listen(3000);

```

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容