生活随笔
收集整理的這篇文章主要介紹了
Express接口案例——完成文章增删改查接口
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、創(chuàng)建文章的Model
var mongoose
= require('mongoose')
const baseModel
= require('./base-model.js')
const Schema
= mongoose
.Schema
const articleSchema
= new mongoose.Schema({title
: {type
: String
,required
: true},description
: {type
: String
,required
: true},body
: {type
: String
,required
: true},tagList
: {type
: [String
],default: null},favoritesCount
: {type
: Number
,default: 0},author
: {type
: Schema
.Types
.ObjectId
,ref
: 'User'},...baseModel
})module
.exports
= articleSchema
二、數(shù)據(jù)驗(yàn)證
三、完成創(chuàng)建文章接口
exports
.createArticle = async (req, res, next) => {try {const article
= new Article(req
.body
.article
)await article
.save()res
.status(201).json({article
: article
})} catch (err
) {next(err
)}
}
創(chuàng)建成功返回結(jié)果為:
四、完成獲取文章接口
五、查詢(xún)文章列表
exports
.getArticles = async (req, res, next) => {try {const { limit
= 20, offset
= 0, tag
, author
} = req
.query
const filter
= {}if(tag
) {filter
.tagList
= tag
}if(author
) {const user
= await User
.findOne({ username
: author
})filter
.author
= user
? user
._id
: null}const article
= await Article
.find(filter
).skip(Number
.parseInt(offset
)) .limit(Number
.parseInt(limit
)) .sort({createdAt
: -1})const articlesCount
= await Article
.countDocuments()res
.status(200).json({article
: article
,articlesCount
: articlesCount
})} catch (err
) {next(err
)}
}
六、更新文章
6.1 封裝驗(yàn)證ID是否有效的函數(shù)
https://express-validator.github.io/docs/check-api.html#buildcheckfunctionlocations
修正上圖存在的錯(cuò)誤:
七、刪除文章
總結(jié)
以上是生活随笔為你收集整理的Express接口案例——完成文章增删改查接口的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。