猫鼬为什么会自动清空我的模型属性?

时间:2018-11-29 22:45:09

标签: javascript mongodb mongoose

我无法弄清楚为什么为什么我的测试来查找任务是否存在并存在于 user.tasks 数组中,而当它应该返回 res.status(400 )... (当用户不在任务中时。

在执行 taskExists()函数之后,用户对象将成为一个空的任务数组,如下所示:

{"tasks":[]}

应该将我的任务留在测试前的位置,还是我遗漏了什么?

这是我的猫鼬图式:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema({
    tasks: []
});

const User = mongoose.model('User', userSchema);

exports.schema = userSchema;
exports.model = User;

这是我使用测试功能的方式:

 taskExists(userId, taskId, res, function () {
    console.log("Task Exists!");
    editTask(userId, taskId, newTaskName, res);
 });

这是我的测试功能:

function taskExists(userId, taskId, res, callback) {
    User.findById(userId, function (err, user) {
        if (!err) {
            if (user) {
                let isTaskInArray = false;
                for (let i = 0; i < user.tasks.length; i++) {
                    const task = user.tasks[i];
                    if (task.id === taskId) {
                        isTaskInArray = true;
                    }
                }

                if (!isTaskInArray) {
                    return res.status(400).send('Task with id \'' + taskId + '\' doesn\'t exist.');
                }
            }
        } else {
            return res.status(500);
        }
    });

    callback();
}

0 个答案:

没有答案