此控制器接受表单并更新数据。
export const createPost = async (req, res) => {
const { title, message, selectedFile, creator, tags } = req.body;
const newPostMessage = new OrangeModel ({ title, message, selectedFile, creator, tags })
try {
await newPostMessage.save();
res.status(201).json(newPostMessage );
} catch (err) {
res.status(409).json({ message: err.message });
}}
我想根据请求更改集合类型。
当请求来自Grapes时,模型(或集合)应该从GrapeModel改为OrangeModel。怎么做?
发布于 2021-09-25 06:59:37
如果希望POST /Grapes的行为与POST /Oranges不同,则可以将控制器附加到两个路径并计算代码中的路径。
const createPost = async (req, res) => {
let newPostMessage;
if (req.path === "/Oranges") newPostMessage = new OrangeModel(...);
else if (req.path === "/Grapes") newPostMessage = new GrapeModel(...);
try {
await newPostMessage.save();
...
};
app.post(["/Oranges", "/Grapes"], createPost);发布于 2021-10-13 15:25:48
我也得到了这样的答案:
exports.createPost =Model=> async (req, res) => {
try {
const doc = await Model.create(req.body, {
new: true,
runValidators: true,
});
res.status(200).json({
status: 'success',
data: {
doc,
},
});
} catch (error) {
res.status(400).json({
status: 'fail',
message: error,
});
}
};这里只需使用模型名调用createPost函数即可。
https://stackoverflow.com/questions/69201813
复制相似问题