【Part1】用JS写一个Blog (node + vue + mongoDB)
【Part2】用JS写一个Blog (node + vue + mongoDB)

上一节我们把数据库连接成功了,这节我准备写关于文章的数据接口(增 删 改 查)
上次说到接口都在routers文件夹里面写,打开post.js文件,首先引入文章的模型

let postModel = require('../models/post')

新增文章API

//新增文章
router.post('/create', (req, res, next) => {
  let title = req.body.title
  let content = req.body.content

  let post = new postModel()
  post.title = title
  post.content = content
  post.save((err, doc) => {  // save方法保存数据到数据库
    if (err) {
      next(err)    // 如果出现错误,直接把错误next进express的错误中枢处理
    } else {
      res.json({    //储存成功后,返回给客户端一个json
        status: 0,
        msg: '创建成功'
      })
    }
  })
})

查询文章列表API

router.get('/postslist', (req, res, next) => {
  postModel.find({}, (err, posts) => {   //find查询方法第一个参数是查询条件,如果为空,则查询所有的,后面是一个回调,回调中第一个参数是错误,第二个参数是查询的结果,在这里为一个数组
    if (err) {
      next(err)
    } else {
      res.json({
        status: 0,
        list: posts
      })
    }
  })
})

更改文章内容API

router.post('/update', (req, res, next) => {
  let id = req.body.id      //拿到客户端传递过来的文章id,根据id来查找到该文章
  let title = req.body.title
  let content = req.body.content

  postModel.findOneAndUpdate({_id: id}, {title, content}, err => {
    if (err) {
      next(err)
    } else {
      res.json({
        status: 0,
        msg: '更新成功'
      })
    }
  })
})

删除文章API

router.get('/delete', (req, res, next) => {
  let id = req.query.id

  postModel.remove({_id: id}, err => {
    if (err) {
      next(err)
    } else {
      res.json({
        status: 0,
        msg: '删除成功'
      })
    }
  })
})

然后最后把接口暴露出去
module.exports = router


max210
282 声望20 粉丝

JavaScripter