Таким образом, у меня есть вызов API /add
, который добавит автомобиль на мой перекресток, когда POST
к нему. Поэтому в настоящее время я пишу пакет для добавления нескольких машин за короткий промежуток времени, вызывая команду curl
в фоновом режиме с &
в оболочке UNIX. Согласно моему журналу, все запросы (всего 125) успешно отправлены на сервер, и сервер получил его правильно. Но независимо от того, сколько раз я пробую перекресток, у меня не будет 125 машин, иногда около 80, иногда у меня только 40.
Я, наверное, догадываюсь, что это мангуст делает эту ошибку. Я предполагаю, что, возможно, из-за того, что один запрос добавляет машину в MongoDB, поступил другой запрос, поэтому, вероятно, из-за этого автомобиль второго запроса не добавляется в базу данных.
Следующее является частью моего кода. Я пытаюсь найти способ, чтобы все мои машины (запросы) были правильно добавлены в базу данных.
db.car.create({
license: license,
type: "small",
speed: 60
}, (rtd) => {
var id = rtd._id;
db.scene.add(nowCIns, req.body.position, req.body.direction, id, (rtd2) => {
res.json(rtd2);
})
})
//db.js
car: {
create: (obj, cb) => {
cb = cb || function (cbr) { };
car.create(obj, (err, res) => cb(res.toObject()));
},
modify: (obj, cb) => {
cb = cb || function (cbr) { };
car.updateOne({ _id: obj._id }, obj, (err, res) => cb(res));
},
get: (id, cb) => {
cb = cb || function (cbr) { };
car.findOne({ _id: id }).lean().exec((err, res) => {
cb(res);
})
},
getAll: (cb) => {
cb = cb || function (cbr) { };
car.find({}).lean().exec((err, res) => {
cb(res);
})
}
}