基于nodejs开发的一个框架,原理是基于node内置http模块封装
npm add express
http.js
//1.引入express模块
const express = require('express')
//2.创建app对象,语法:express()。底层原理http模块的createServer方法
const app = express()
app.use(express.urlencoded({ extended: false }))
//3.路由,语法:app.HTPP请求方式(路径,回调函数)
app.get('/', (req,res)=>{
res.send('hello')//send是express用来响应数据
})
const stuController = require(process.cwd()+'/controller/stu')
//#新增接口
app.post('/stu',stuController.create)
//#查询接口
app.get('/stu',stuController.get)
//4.启动服务监听端口
app.listen(3000,()=>{
console.log('启动成功')
})
controller/stu.js
//导入模型
const {createModel,getModel} = require(process.cwd() + '/model/stu')
//定义处理方法
const create = async (req,res)=>{
//1.接收数据
let postData = req.body
//2.过滤数据
//3.操作数据库
let result = await createModel(postData)
//4.判断返回
if(result){
res.send({
meta:{
state:200,
msg:"添加成功"
},
data:null
})
}else{
res.send({
meta:{
state:500,
msg:"添加失败"
},
data:null
})
}
}
/**
* @api {get} /stu 学生列表
* @apiName Add
* @apiGroup Stu
*
* @apiParam {Number} pageIndex 当前页
* @apiParam {Number} pageSize 每页显示条数
*
* @apiSuccess {String} meta 状态码&提示信息
* @apiSuccess {String} data 数据
*/
const get = async (req,res) => {
//1.接收分页数据
let getData = req.query
let skip = (parseInt(getData.pageIndex - 1) * parseInt(getData.pageSize))
//2.获取分页数据
let data = await getModel(skip, parseInt(getData.pageSize))
if(data){
res.send({
meta:{
state:200,
msg:"查询成功"
},
data:data
})
}else{
res.send({
meta:{
state:500,
msg:"查询失败"
},
data:null
})
}
}
//导出
module.exports = {
create
}
定义模型models/stu.js
const mongoose = require('mongoose');
const db = mongoose.createConnection('mongodb://usr:pass@localhost:port/database',
{userNewUrlParser:true, useUnifiedTopology:true},err=>{
if(err){
console.log('数据库连接失败');
return
}
console.log('数据库连接成功')
})
const model = db.model('stu',{
name:{type:String,default:"username"},
age:{type:Number},
sex: String
})
const createModel = postData => {
const insertObj = new model(postData)
return insertObj.save().then().catch()
}
const getModel = (skip,limit) =>{
return model.find().skip(skip).limit(limit)
.then(res=>{
return res
})
.catch(err=>{
console.log('查询失败'+err)
return false
})
}
module.exports = {
createModel,getModel
}