基于nodejs开发的一个框架,原理是基于node内置http模块封装

    npm add express

    http.js

    1. //1.引入express模块
    2. const express = require('express')
    3. //2.创建app对象,语法:express()。底层原理http模块的createServer方法
    4. const app = express()
    5. app.use(express.urlencoded({ extended: false }))
    6. //3.路由,语法:app.HTPP请求方式(路径,回调函数)
    7. app.get('/', (req,res)=>{
    8. res.send('hello')//send是express用来响应数据
    9. })
    10. const stuController = require(process.cwd()+'/controller/stu')
    11. //#新增接口
    12. app.post('/stu',stuController.create)
    13. //#查询接口
    14. app.get('/stu',stuController.get)
    15. //4.启动服务监听端口
    16. app.listen(3000,()=>{
    17. console.log('启动成功')
    18. })

    controller/stu.js

    1. //导入模型
    2. const {createModel,getModel} = require(process.cwd() + '/model/stu')
    3. //定义处理方法
    4. const create = async (req,res)=>{
    5. //1.接收数据
    6. let postData = req.body
    7. //2.过滤数据
    8. //3.操作数据库
    9. let result = await createModel(postData)
    10. //4.判断返回
    11. if(result){
    12. res.send({
    13. meta:{
    14. state:200,
    15. msg:"添加成功"
    16. },
    17. data:null
    18. })
    19. }else{
    20. res.send({
    21. meta:{
    22. state:500,
    23. msg:"添加失败"
    24. },
    25. data:null
    26. })
    27. }
    28. }
    29. /**
    30. * @api {get} /stu 学生列表
    31. * @apiName Add
    32. * @apiGroup Stu
    33. *
    34. * @apiParam {Number} pageIndex 当前页
    35. * @apiParam {Number} pageSize 每页显示条数
    36. *
    37. * @apiSuccess {String} meta 状态码&提示信息
    38. * @apiSuccess {String} data 数据
    39. */
    40. const get = async (req,res) => {
    41. //1.接收分页数据
    42. let getData = req.query
    43. let skip = (parseInt(getData.pageIndex - 1) * parseInt(getData.pageSize))
    44. //2.获取分页数据
    45. let data = await getModel(skip, parseInt(getData.pageSize))
    46. if(data){
    47. res.send({
    48. meta:{
    49. state:200,
    50. msg:"查询成功"
    51. },
    52. data:data
    53. })
    54. }else{
    55. res.send({
    56. meta:{
    57. state:500,
    58. msg:"查询失败"
    59. },
    60. data:null
    61. })
    62. }
    63. }
    64. //导出
    65. module.exports = {
    66. create
    67. }

    定义模型models/stu.js

    1. const mongoose = require('mongoose');
    2. const db = mongoose.createConnection('mongodb://usr:pass@localhost:port/database',
    3. {userNewUrlParser:true, useUnifiedTopology:true},err=>{
    4. if(err){
    5. console.log('数据库连接失败');
    6. return
    7. }
    8. console.log('数据库连接成功')
    9. })
    10. const model = db.model('stu',{
    11. name:{type:String,default:"username"},
    12. age:{type:Number},
    13. sex: String
    14. })
    15. const createModel = postData => {
    16. const insertObj = new model(postData)
    17. return insertObj.save().then().catch()
    18. }
    19. const getModel = (skip,limit) =>{
    20. return model.find().skip(skip).limit(limit)
    21. .then(res=>{
    22. return res
    23. })
    24. .catch(err=>{
    25. console.log('查询失败'+err)
    26. return false
    27. })
    28. }
    29. module.exports = {
    30. createModel,getModel
    31. }