Как я могу отфильтровать GET-запрос от экспресс-сервера и nodejs - PullRequest
0 голосов
/ 24 ноября 2018

Я хочу создать маршрут GET, который получит все мои задачи, но только ту, которая имеет свойство task_completed логическое 'false'.

существующий маршрут:

router.get('/getalltasks', cors(), async(req, res) => {
Task.find(function(err, tasks) {

// if there is an error retrieving, send the error. 
                // nothing after res.send(err) will execute
if (err)
    res.send(err);


res.json(tasks); // return all tasks that are in JSON format 

  });
});

MongoosSchema:

const mongoose = require('mongoose');

const TaskSchema = new mongoose.Schema({
task_name:{
    type: String,
    required: true,
    minlength: 1,
    unique: true,
},
task_category: String,
task_xpreward: Number,
task_completed: Boolean,
task_difficulty: Number,    //1 = Easy, 2 = Medium, 3 = Hard, 4 = Very Hard, 5 = Impossible
task_city : String,
});

 //sommige variabelen kunnen opgedeeld worden in 2de schema met relatie 
module.exports = mongoose.model('Task', TaskSchema);

как я могу реализовать это в существующем коде?

1 Ответ

0 голосов
/ 24 ноября 2018

, поэтому, если вы хотите одну задачу с task_completed: false свойством:

РЕДАКТИРОВАТЬ: перехватывать ошибки:

router.get('/getalltasks', cors(), async(req, res) => {
let task;
try{
task = await Task.findOne({task_completed: false});
   }catche (e){
    console.log(`Err: ${e}`);
   }
 res.json(task);
}

и если вы хотите, чтобы все задачи с task_completed: false:

router.get('/getalltasks', cors(), async(req, res) => {
const tasks = await Task.find({task_completed: false});
res.json(tasks);
}
...