(一) 搭建koa2的服务器
- 初始化package.json
- 创建一个简单的koa应用
- 添加跨域中间件, 注意: 因为后面的数据库操作是异步操作, 跨域时需要使用async await
- 设置静态资源目录
-
(二) 连接MongoDB数据库
详看第3节 mongoose的使用
安装mongoose: npm i mongoose —save
- 在utils文件夹新增connect.js, 连接数据的文件 ```typescript // 数据库连接模块, 不使用module.exports,模块被require便被直接执行
// 导入mongoose模块 const mongoose = require(‘mongoose’); // 连接数据库,第一个参数为数据库地址(如果是远程数据库,修改地址即可),第二参数为对象,为了消除警告信息 mongoose.connect(‘mongodb://localhost/hero’, { useNewUrlParser: true, useUnifiedTopology: true }); // 获取连接对象,为了监听连接情况,后面这几行代码不要也可以,不过不要就无法知道连接是否成功 var db = mongoose.connection; db.on(‘error’, function (err) { console.log(‘数据库连接失败’, err); }); db.once(‘open’, function () { console.log(‘数据库连接成功’); });
2. 在app.js 导入connect.js
```typescript
var Koa = require('koa');
var app = new Koa();
require('./utils/connect.js');
(三) 数据库增删改查操作
在使用之前需要给router.js 新增Schema 和model(在哪里进行数据库操作, 这两个东西就放在哪里)
var mongoose = require('mongoose');
// 创建用户数据结构, 就是一条数据,拥有哪些字段(属性)
var userSchema = mongoose.Schema({
name: '',
age: '',
});
// 创建一个model(模型), 模型用来跟数据库进行通信的
var userModel = mongoose.model('User',userSchema);
- 新增数据
router.all('/add', async function(ctx) {
try {
// 获取前端传进来的请求参数
var data = ctx.query;
// 创建model
var model = new heroModel(data);
// 把数据存入数据库
var result = await model.save();
console.log('result', result);
ctx.body = {
code: 666,
msg: '添加成功',
result: result
};
} catch (error) {
ctx.body = {
code: 500,
msg: '添加失败',
error: error
};
}
})