以MongoDB为数据库的简单的Node.js的Demo
1. 项目目录
2. 安装
npm init -y
npm install koa koa-router --save
npm install mongodb mongoose --save
3. db.js
const mongoose = require('mongoose')
const DB_URL = 'mongodb://localhost/itcast'
mongoose.connect(DB_URL)
mongoose.connection.on('connected',function() {
console.log('Mongoose connection open to '+DB_URL);
});
/**
* 连接异常 error 数据库连接错误
*/
mongoose.connection.on('error',function(err) {
console.log('Mongoose connection error: '+ err);
});
/**
* 连接断开 disconnected 连接异常断开
*/
mongoose.connection.on('disconnected',function() {
console.log('Mongoose connection disconnected');
});
module.exports = mongoose
【提示】操作的数据库是mongodb的itcast数据库
4. db/student.js
// db/index.js
const mongoose = require('./db')
const Schema = mongoose.Schema;
const studentSchema = new Schema({
username: String,
password: String,
email: String
});
const MyModel = mongoose.model('users', studentSchema);
class Mongodb {
constructor () {
}
// 查询
query () {
return new Promise((resolve, reject) => {
MyModel.find({}, (err, res) => {
if(err) {
reject(err)
}
resolve(res)
})
})
}
// 保存
save (obj) {
const m = new MyModel(obj)
return new Promise((resolve, reject)=> {
m.save((err, res) => {
if (err) {
reject(err)
}
resolve(res)
console.log(res)
})
})
}
}
module.exports = new Mongodb()
【提示】操作的数据表是test数据库下面的users数据表
5. routers/student.js
const Router = require("koa-router")
const router = new Router()
const db = require('../db/student')
router.get('/show',async ctx=>{
// console.log(JSON.stringify(db.query()))
ctx.body= await db.query()
})
module.exports=router.routes()
6. app.js
const Koa=require("koa")
const KoaRouter= require("koa-router")
const app = new Koa()
const router = new KoaRouter()
const students = require('./routers/student')
router.use('/student',students)
//路由的配置
app.use(router.routes()).use(router.allowedMethods())
app.listen(3000,function (res,req) {
console.log("Server start at 3000...")
})
7. 测试
扩展:Koa连接Mysql
比较简单,与Express连接基本相同。参考https://www.jianshu.com/p/d54e055db5e0