基于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.querylet 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}
