【Mongodb】4.查询所有文章

还是和之前一样文章的模型文件models/post.js中添加一个模型方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const postCollection = require("../config/mongoDbConnection").getCollection("postCollection");

exports.save = async(post) => {
try {
const col = await postCollection();
const result = await col.insertOne(post)
return result.ops && result.ops[0];
} catch (err) {
throw "添加到文章出错"
}
}

exports.findAll = async() => {
try {
const col = await postCollection();
return col.find({}).toArray();
} catch(err) {
throw "查询文章出错"
}
}

在文章的路由文件中添加一个新的路由:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const postModel = require('../models/post')
const router = require('express').Router();

router.post('/add', async (req, res) => {
try {
const newPost = await postModel.save(req.body);
res.send(newPost)
} catch (err) {
console.error(err);
res.status(500).send();
}
})

router.get('/', async (req, res) => {
try {
const posts = await postModel.findAll();
console.log(posts);

res.json(posts);
} catch(err) {
console.error(error);
res.status(404).send(err)
}
})

module.exports = router;

这样我们就添加了文章的查询逻辑,访问GET:http://localhost:3000/api/post/即可查询所有文章的记录。

当然,这里的代码都已经是5年前的了,很多方法其实已经迭代,比如模型的设计在最新的MongoDB中可以使用Model来替代,主要是学习一下这里的设计思想最为重要。