我无法弄清楚为什么为什么我的测试来查找任务是否存在并存在于 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();
}