MEAN Stack如何正确捕获错误

时间:2018-06-04 10:31:45

标签: express mongoose error-handling

我编写了一个函数,该函数使用参数日期字符串解析从url API返回的数据,该函数根据某个日期范围过滤数据。

exports.list_FP_start_end_date_by_ID = function(req, res) {
    demo_id=req.params.demo_id;
    start = req.params.start;
    end = req.params.end;

    FP.findById(demo_id)
    .exec( function(err, fps) {
        if (err) {
            console.log(err);
            res.send(err);
        }
        else {              
            startts = +new Date(start)
            endts = +new Date(end)
            TSarray = []

            for (let doc of fps["myColl"]) {
                ts = +new Date(doc["Timestamp"])
                if ((ts >= startts) && (ts <= endts)){
                    TSarray.push(doc)                                                   
                }               
            }
            res.json(TSarray);
        }
    }).catch(function(err) {
        res.json(err);
    })
};

Request从数组中返回相应的子文档。但是,如果我输入ID作为参数,那不存在,我收到一个错误: s.js:183       扔掉//未处理的错误&#39;事件       ^

TypeError:无法读取属性&#39; myColl&#39; null。

如果我将".exec"更改为".then",它会正确捕获错误,但是,我再也无法返回正确的文档,不知何故,它会弄乱我的查询...我可以最好地捕获/处理错误,或者我应该如何修复我的查询?

0 个答案:

没有答案