根据请求类型更改 collection
Changing the collection based on the request type
此控制器接受表单并更新数据。
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 });
}
}
我想根据要求更改 collection 类型。
当请求来自 Grapes url 时,模型(或 collection)应从 OrangeModel[ 更改为 GrapeModel =22=]。如何做到这一点?
如果您希望 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);
我也得到了这样的答案:
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函数
此控制器接受表单并更新数据。
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 });
}
}
我想根据要求更改 collection 类型。
当请求来自 Grapes url 时,模型(或 collection)应从 OrangeModel[ 更改为 GrapeModel =22=]。如何做到这一点?
如果您希望 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);
我也得到了这样的答案:
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函数