У меня есть маршрут API. Внутри этого маршрута я обрабатываю запросы, поступающие от моих компонентов с помощью MongodDB. Моя проблема в том, что я отправляю запрос PUT от одного из моих компонентов на этот маршрут, и он работает. Но теперь я хочу отправить еще один запрос PUT из другого компонента. Как я этого добьюсь?
if (req.method === "PUT") {
try {
const { _id, id, change } = req.body;
let set = `settings.$[el].${id}`;
const data = await db
.collection("Todos")
.updateOne(
{ _id: _id },
{ $set: { [set]: change } },
{ arrayFilters: [{ "el._id": id }] }
);
res.status(201).json(data);
} catch (err) {
res.status(500).json({ message: "Unable to instert the data." });
}
}
Это для моего одного запроса, и теперь я хочу отправить еще один, но также с другими данными. Если я отправлю его, возникнет конфликт, поэтому он потерпит неудачу. Некоторые базовые решения я нашел, но они не являются устойчивыми.
Один из способов — создать новый маршрут /api/newRoute
.
Другой способ: когда вы отправляете запрос, добавляете в его тело переменную, которая различает их. Например:
body: {
// your original data
type: "newType" // this variable can be named anything you like
}
В маршруте API вы можете использовать следующий пример кода:
if (req.method === "PUT" && req.body.type == "newType") {
try {
// your new code
} catch (err) {
// your new code
}
}
@SerdarGökhanBAKIRCI в программировании обычно есть много способов сделать одно и то же, и те, которые я предложил, - это способы, которые я знаю. Хотя могут быть и другие способы, о которых я не знаю.
Я сделал это вторым способом. Мне просто интересно, есть ли какие-то другие решения или я прав. Спасибо.