一个express框架返回json数据的疑问
学习一个项目的源码,看到作者有以下代码:
exports.loadQuestions = async (req, res, next, id) => {
try {
const question = await Question.findById(id);
if (!question) return res.status(404).json({ message: 'Question not found.' });
req.question = question;
} catch (error) {
if (error.name === 'CastError')
return res.status(400).json({ message: 'Invalid question id.' });
return next(error);
}
next();
};
exports.createQuestion = async (req, res, next) => {
const result = validationResult(req);
if (!result.isEmpty()) {
const errors = result.array({ onlyFirstError: true });
return res.status(422).json({ errors });
}
try {
const { title, tags, text } = req.body;
const author = req.user.id;
const question = await Question.create({
title,
author,
tags,
text
});
res.status(201).json(question);
} catch (error) {
next(error);
}
};
loadQuestions返回客户端json数据采用的方法是
req.question = question;
createQuestion返回客户端json数据采用的方法是
res.status(201).json(question);
第二种方式容易理解,第一种是什么意思呢?
将数据库里查询到的数据复制给req.question,后面调用next(),就会自动转为json并回应给客户端么?
可能是一个小白问题,哪位大牛不吝解答以下,万分感谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论