使用Njs+express+mongoDB打造一个简易服务端

581 阅读2分钟

使用Njs+express+mongoDB打造一个简易服务端

前言

本文主要介绍使用NJs+express+mongoDB如何创建一个简易的服务器,可以在此基础上进行项目服务器的开发。

1.前期准备

  • 安装express
npm install express
  • 安装mongoose(用于与monogoDB数据库进行连接)
npm install mongoose
  • 文件目录结构 image.png

2.连接mongoDB数据库及创建数据模型

models/user.js

//1.导入模块
const mongoose = require('mongoose');
//2.连接数据库  如果有身份验证 记得打开
const db = mongoose.createConnection('mongodb://用户名:密码@localhost:27017/数据库名称',{useNewUrlParse:true,useUnifiedTopology: true},err=>{
   if(err){
     console.log("-----------------------------")
     console.log("数据库连接失败",err)
     console.log("-----------------------------")
     return
   }
   console.log("数据库连接成功") 
})
//3.设置数据模型(声明是哪个集合,限制字段和字段类型)
//mongoose.model('name',schema)
const model = db.model('user', { 
  uname:{type:String,default:"一二三四" },
  pwd:String,
  email:String,
  sex:String
});
//添加新用户方法
const createModel = postData =>{
  const insertObj = new model(postData)
  return insertObj.save()
  .then(res => {
    console.log(res)
    // db.close()
    return res
  })
  .catch(err => {
    console.log('插入失败' + err)
    return false
  })
}
const findModel = (skip = 0,limit = 0)=>{
  if (!skip) {
    skip = 0
  }
  //此处是为分页准备,默认为0
  return model.find().skip(skip).limit(limit)
  .then(res=>{
    return res
  })
  .catch(err=>{
    console.log('查询失败' + err)
    return []
  })
}

//导出成员
module.exports = {
  createModel,
  findModel
}

3.通过模型定义创建数据的方法

controller/user.js

//导入模型
const {createModel,findModel} = require(process.cwd() + '/models/user')
//定义处理方法
const create = async(req,res)=>{
  //1.接受数据
  let postData = req.query
  //2.过滤(忽略
  console.log(postData)
  //3.操作数据库
  let rs = await createModel(postData)
  //4.判断返回
  if (rs) {
    res.send({
      meta:{
        state:200,
        msg:"添加成功"
      },
      data:postData
    })
  } else {
    res.send({
      meta:{
        state:500,
        msg:"添加失败"
      },
      data:postData
    })
  }
}

const find = async (req,res)=>{
  //1接受数据
  let pageInfo = req.query
  //2.过滤
  //3.获取数据
  let skip = (parseInt( pageInfo.pageno) -1 ) * parseInt(pageInfo.pagesize)
  console.log(pageInfo)
  let rs = await findModel(skip,parseInt(pageInfo.pagesize)) 
  // let rs = await findModel()
  if (rs) {
    res.send({
      meta:{
        state:200,
        msg:"查询成功"
      },
      data:rs
    })
  } else {
    res.send({
      meta:{
        state:500,
        msg:"查询失败"
      },
      data:rs
    })
  }
}

//导出成员
module.exports = {
  create,
  find
}

4.创建入口文件

http.js

// 1.引入express模块
const express = require('express')
// 2.创建app对象 通过语法express() 底层原理express 的createServer
const app = new express()

// 3.路由,语法app.HTTP请求方式 (路径,回调函数)
app.get('/',(req,res)=>{
  res.send('hello express')
})

const userController = require(process.cwd()+'/controller/user')
// 学生添加
app.post('/user',userController.create)
// 学生列表查询
app.get('/user',userController.find)

// 4.启动服务监听端口
app.listen(3000,()=>{
  console.log('http://localhost:3000')
})

5.使用node/nodemon运行服务器

nodemon http.js

image.png 此时就可以通过http://127.0.0.1:3000访问服务器啦!

喜欢的话点个 image.png♥(ˆ◡ˆԅ)