(一) 搭建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```typescriptvar 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;// 创建modelvar 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};}})
