使用koa2结合mongoose操作MongoDB
1.首先创建一个koa2项目安装koa-generator
npm install -g koa-generator
2.工作目录下输入命令
koa2 hello-koa
3.接着就是一顿安装和启动
cd hello-koa
npm install
npm start
4.安装mongoose
npm install mongoose --save
5.重新定义下目录结构新建db文件夹用于操作mongoose
6.bd/index.js
const DB_URL = '你的MongoDB地址'// 大致格式‘mongodb://root:账号#密码@127.0.0.1:27017/你的MongoDB数据库’
mongoose.connect(DB_URL, {
useNewUrlParser: true,
useCreateIndex: true
})
mongoose.set('useNewUrlParser', true)
mongoose.set('useFindAndModify', false)
mongoose.set('useCreateIndex', true)
mongoose.Promise = global.Promise
mongoose.connection.on('error', (err) => {
console.log(err);
});
mongoose.connection.on('open', () => {
console.log('Mongoose连接成功' + DB_URL);
})
mongoose.connection.on('disconnected', function () { //链接异常
console.log('数据库连接断开');
});
module.exports = mongoose;
7.bd/index.js
/**
*不论你是想新建一个数据表还是想要连接并操作线上已经存在的MongoDB数据表
都要先new一个Schema,Schema中要定义表中各个字段的类型,
如果是线上的数据表,在定义类型时,定义的字段和数据类型要与线上的一致
如下图中的两个字段 apiName和token在Schema中都要定义为String类型
*/
/*
允许的类型为:
String
Number
Date
Buffer
Boolean
Mixed
ObjectId
Array
Decimal128
Map
*/
const dataSchema = new mongoose.Schema({
apiName: String,
token: String
});
/*
创建model集合
model中第一个参数为表的名字,第二个参数填入定义的Schema,第三个参数意味重命名表名
如果是新建数据表那么第三个参数可不填写,
如果是连接线上已经存在的数据表,那么第一个参数的表名要与线上的表名一致,并且第三个参数也要与线上
的表名一致,才能访问到线上的表
如此处我的线上表名为my_user
*/
let tempModel = mongoose.model('my_user', dataSchema, 'my_user');
const db = {
tempModel: tempModel
}
module.exports = db;
8.在router中使用
在routes文件夹下新建user.js
const {
tempModel
} = require('../db/db')
router.prefix('/users')
router.get('/all', async (ctx, next) => { //查询
try {
let arr = await tempModel.find({}, {
_id: 0
})
ctx.sendRes(arr, 200, '查找成功!');
} catch (err) {
console.error(err)
}
})
9.最后在app.js中导入bd
重新启动服务
使用ajax请求接口测试下服务地址
好了,大家可以开始愉快的写增删改查代码了。
更多关于mongoose的操作大家可以 查阅官方手册: https://mongoosejs.com/docs/index.html
如果你不想下载收费的Studio 3T,推荐下web版连接MongoDB工具:https://github.com/mrvautin/adminMongo