摘要:用寫一個(gè)用寫一個(gè)上一節(jié)我們把數(shù)據(jù)庫(kù)連接成功了,這節(jié)我準(zhǔn)備寫關(guān)于文章的數(shù)據(jù)接口增刪改查上次說(shuō)到接口都在文件夾里面寫,打開(kāi)文件,首先引入文章的模型新增文章新增文章方法保存數(shù)據(jù)到數(shù)據(jù)庫(kù)如果出現(xiàn)錯(cuò)誤,直接把錯(cuò)誤進(jìn)的錯(cuò)誤中樞處理儲(chǔ)存成功后,返回給客戶
【Part1】用JS寫一個(gè)Blog (node + vue + mongoDB)
【Part2】用JS寫一個(gè)Blog (node + vue + mongoDB)
上一節(jié)我們把數(shù)據(jù)庫(kù)連接成功了,這節(jié)我準(zhǔn)備寫關(guān)于文章的數(shù)據(jù)接口(增 刪 改 查)
上次說(shuō)到接口都在routers文件夾里面寫,打開(kāi)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方法保存數(shù)據(jù)到數(shù)據(jù)庫(kù) if (err) { next(err) // 如果出現(xiàn)錯(cuò)誤,直接把錯(cuò)誤next進(jìn)express的錯(cuò)誤中樞處理 } else { res.json({ //儲(chǔ)存成功后,返回給客戶端一個(gè)json status: 0, msg: "創(chuàng)建成功" }) } }) })
查詢文章列表API
router.get("/postslist", (req, res, next) => { postModel.find({}, (err, posts) => { //find查詢方法第一個(gè)參數(shù)是查詢條件,如果為空,則查詢所有的,后面是一個(gè)回調(diào),回調(diào)中第一個(gè)參數(shù)是錯(cuò)誤,第二個(gè)參數(shù)是查詢的結(jié)果,在這里為一個(gè)數(shù)組 if (err) { next(err) } else { res.json({ status: 0, list: posts }) } }) })
更改文章內(nèi)容API
router.post("/update", (req, res, next) => { let id = req.body.id //拿到客戶端傳遞過(guò)來(lái)的文章id,根據(jù)id來(lái)查找到該文章 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
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/19163.html
摘要:用寫一個(gè)用寫一個(gè)上一節(jié)我們把數(shù)據(jù)庫(kù)連接成功了,這節(jié)我準(zhǔn)備寫關(guān)于文章的數(shù)據(jù)接口增刪改查上次說(shuō)到接口都在文件夾里面寫,打開(kāi)文件,首先引入文章的模型新增文章新增文章方法保存數(shù)據(jù)到數(shù)據(jù)庫(kù)如果出現(xiàn)錯(cuò)誤,直接把錯(cuò)誤進(jìn)的錯(cuò)誤中樞處理儲(chǔ)存成功后,返回給客戶 【Part1】用JS寫一個(gè)Blog (node + vue + mongoDB)【Part2】用JS寫一個(gè)Blog (node + vue + m...
摘要:總的來(lái)說(shuō)就是開(kāi)發(fā)博客系統(tǒng),探索前端走向全棧之路。我會(huì)記錄下來(lái)整個(gè)過(guò)程在我的專欄,有興趣的可以關(guān)注一下,一起學(xué)習(xí),歡迎討論。話不多說(shuō),先進(jìn)行前后端項(xiàng)目的初始化。安裝完成后,輸入命令切換到項(xiàng)目文件夾后輸入命令訪問(wèn)一下項(xiàng)目初始化完成。 學(xué)習(xí)JS也有一段時(shí)間了,準(zhǔn)備試著寫一個(gè)博客項(xiàng)目,前后端分離開(kāi)發(fā),后端用node只提供數(shù)據(jù)接口,前端用vue-cli腳手架搭建,路由也由前端控制,數(shù)據(jù)異步交互用...
摘要:總的來(lái)說(shuō)就是開(kāi)發(fā)博客系統(tǒng),探索前端走向全棧之路。我會(huì)記錄下來(lái)整個(gè)過(guò)程在我的專欄,有興趣的可以關(guān)注一下,一起學(xué)習(xí),歡迎討論。話不多說(shuō),先進(jìn)行前后端項(xiàng)目的初始化。安裝完成后,輸入命令切換到項(xiàng)目文件夾后輸入命令訪問(wèn)一下項(xiàng)目初始化完成。 學(xué)習(xí)JS也有一段時(shí)間了,準(zhǔn)備試著寫一個(gè)博客項(xiàng)目,前后端分離開(kāi)發(fā),后端用node只提供數(shù)據(jù)接口,前端用vue-cli腳手架搭建,路由也由前端控制,數(shù)據(jù)異步交互用...
摘要:用寫一個(gè)上一節(jié)前后端項(xiàng)目分別初始化完成,這一小節(jié)我就從后端項(xiàng)目開(kāi)始寫。每一個(gè)都映射到一個(gè)的集合,并定義了該集合中的文檔的形式。 【Part1】用JS寫一個(gè)Blog (node + vue + mongoDB) 上一節(jié)前后端項(xiàng)目分別初始化完成,這一小節(jié)我就從后端項(xiàng)目開(kāi)始寫。實(shí)現(xiàn)mongoDB數(shù)據(jù)庫(kù)的連接。 整理后端目錄 下面是通過(guò)express-generate生成的項(xiàng)目的目錄 show...
摘要:用寫一個(gè)上一節(jié)前后端項(xiàng)目分別初始化完成,這一小節(jié)我就從后端項(xiàng)目開(kāi)始寫。每一個(gè)都映射到一個(gè)的集合,并定義了該集合中的文檔的形式。 【Part1】用JS寫一個(gè)Blog (node + vue + mongoDB) 上一節(jié)前后端項(xiàng)目分別初始化完成,這一小節(jié)我就從后端項(xiàng)目開(kāi)始寫。實(shí)現(xiàn)mongoDB數(shù)據(jù)庫(kù)的連接。 整理后端目錄 下面是通過(guò)express-generate生成的項(xiàng)目的目錄 show...
閱讀 1643·2021-09-22 15:25
閱讀 1521·2021-09-07 10:06
閱讀 3196·2019-08-30 15:53
閱讀 1100·2019-08-29 13:12
閱讀 3392·2019-08-29 13:07
閱讀 741·2019-08-28 18:19
閱讀 2281·2019-08-27 10:57
閱讀 997·2019-08-26 13:29