Express和Mongoose无法同时处理多个请求

时间:2019-04-13 04:05:52

标签: node.js mongodb express mongoose

因此,我有一个API调用/add,它将在POST上向我的路口添加一辆汽车。因此,当前我正在编写批处理,以通过在UNIX Shell中使用curl在后​​台调用&来在短时间内添加多辆汽车。根据我的日志,所有请求(总计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);
        })
    }
}

0 个答案:

没有答案