路由设计
一般都会在router文件夹中新建一个index.js,然后根据接口的功能新建文件分类。如下图:
index.js文件,如下:
const express = require('express');
const router = express.Router();
// 用户账号
router.use(require('./users'))
// 用户信息
router.use(require('./profile'))
// 文章信息
router.use(require('./article'))
// 标签信息
router.use(require('./tag'))
module.exports = router
users.js文件,如下:
const express = require('express');
const router = express.Router();
// 登录用户
router.post('/users/login', async (req, res, next) => {
try {
res.send('post /users/login')
} catch (err) {
next(err)
}
})
// 注册用户
router.post('/users', async (req, res, next) => {
try {
res.send('post /users')
} catch (err) {
next(err)
}
})
// 获取当前用户
router.get('/user', async (req, res, next) => {
try {
res.send('get /user')
} catch (err) {
next(err)
}
})
// 更新当前用户
router.put('/user', async (req, res, next) => {
try {
res.send('put /user')
} catch (err) {
next(err)
}
})
module.exports = router
profile.js文件,如下:
const express = require('express');
const router = express.Router();
// 获取用户信息
router.get('/profiles/:username', async (req, res, next) => {
try {
res.send('get /profiles/:username')
} catch (err) {
next(err)
}
})
// 关注用户
router.post('/profiles/:username/follow', async (req, res, next) => {
try {
res.send('post /profiles/:username/follow')
} catch (err) {
next(err)
}
})
// 取消关注用户
router.delete('/profiles/:username/follow', async (req, res, next) => {
try {
res.send('delete /profiles/:username/follow')
} catch (err) {
next(err)
}
})
module.exports = router
article.js文件,如下:
const express = require('express');
const router = express.Router();
// 获取文章
router.get('/articles', async (req, res, next) => {
try {
res.send('get /articles')
} catch (err) {
next(err)
}
})
// 推荐文章
router.get('/articles/feed', async (req, res, next) => {
try {
res.send('get /articles/feed')
} catch (err) {
next(err)
}
})
// 获取文章,未登录
router.get('/articles/:slug', async (req, res, next) => {
try {
res.send('get /articles/:slug')
} catch (err) {
next(err)
}
})
// 创建文章
router.post('/articles', async (req, res, next) => {
try {
res.send('get /articles')
} catch (err) {
next(err)
}
})
// 更新文章
router.put('/articles/:slug', async (req, res, next) => {
try {
res.send('get /articles/:slug')
} catch (err) {
next(err)
}
})
// 删除文章
router.delete('/articles/:slug', async (req, res, next) => {
try {
res.send('get /articles/:slug')
} catch (err) {
next(err)
}
})
// 添加文章评论
router.post('/articles/:slug/comments', async (req, res, next) => {
try {
res.send('get /articles/:slug/comments')
} catch (err) {
next(err)
}
})
// 获取文章评论
router.get('/articles/:slug/comments', async (req, res, next) => {
try {
res.send('get /articles/:slug/comments')
} catch (err) {
next(err)
}
})
// 删除评论
router.delete('/articles/:slug/comments/:id', async (req, res, next) => {
try {
res.send('get /articles/:slug/comments/:id')
} catch (err) {
next(err)
}
})
// 标记喜欢的文章
router.post('/articles/:slug/favorite', async (req, res, next) => {
try {
res.send('get /articles/:slug/favorite')
} catch (err) {
next(err)
}
})
// 取消标记喜欢的文章
router.delete('/articles/:slug/favorite', async (req, res, next) => {
try {
res.send('get /articles/:slug/favorite')
} catch (err) {
next(err)
}
})
module.exports = router
tag.js文件,如下:
const express = require('express');
const router = express.Router();
// 标签
router.post('/tags', async (req, res, next) => {
try {
res.send('post /tags')
} catch (err) {
next(err)
}
})
module.exports = router