Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ES6符号处理node.js中的新错误()?_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

Javascript 如何使用ES6符号处理node.js中的新错误()?

Javascript 如何使用ES6符号处理node.js中的新错误()?,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我正在node.js中使用ES6符号创建端点。范例 //ES6符号法 const taskCreationMethod = { [Symbol.taskMethod]() { return { storeCheckFunc: async function(storeId, employeeId) { let store = await resourceModel["stores"].findById(storeId)

我正在node.js中使用ES6符号创建端点。范例

//ES6符号法

const taskCreationMethod = {
    [Symbol.taskMethod]() {
        return {
            storeCheckFunc: async function(storeId, employeeId) {
                let store = await resourceModel["stores"].findById(storeId).populate(references["stores"]);
                if(!store) {
                    return new Error("Store not found");
                }
                let employeeCheck = _.find(store.employees, (empObj) => {
                    return empObj._id == employeeId
                })
                if(!employeeCheck) {
                    return new Error("Employee not found");
                }
                return employeeCheck;
            }
        };
    }
}
//终点

 export const taskCreation = async(req, res) => {
            const storeCheck = await taskCreationMethod[Symbol.taskMethod]().storeCheckFunc(req.body.store, req.body.assigned_to);
      // here How can I handle return with Error Response?
 }

如果要使用错误处理机制,则需要抛出该错误,而不仅仅是返回该错误。抛出的错误将成为被拒绝的承诺,您可以直接在承诺上使用
.catch()
,或者在异步函数中使用
try/catch
来处理。下面是一个简化的示例:

函数填充(){
//始终解析为未定义
返回承诺。解决(未定义)
}
const taskCreationMethod={
someMethod(){
返回{
storeCheckFunc:异步函数(){
let store=wait populate()//始终解析未定义的
如果(!store){//那么它总是失败
抛出新错误(“未找到存储”);//抛出错误
}
}
};
}
}
//定期承诺然后()捕获
taskCreationMethod.someMethod().storeCheckFunc()
.then(res=>console.log(res))
.catch(err=>console.log(“Error:,err.message))//catch
//或…异步函数
异步函数runit(){
试一试{
让s=等待taskCreationMethod.someMethod().storeCheckFunc()
}捕捉(错误){
日志(“错误:”,错误消息)
}
}

runit()
您的问题并不完全清楚
async
函数通常通过抛出(将拒绝函数返回的承诺)或手动返回被拒绝的承诺来返回错误。使用
try
catch
捕获抛出的错误。@jfriend00此处我返回所有结果,并返回新错误();在我处理完这个错误后,我如何处理这个错误响应。我试过了,也试过了,你了解承诺的基本错误报告模型吗?如果没有,请继续阅读,因为
异步
函数总是返回一个承诺,该承诺会被错误拒绝或用值解决。从中挑选一个,并将其用于所有可能的返回情况。对于错误,您应该拒绝承诺,可以使用
抛出新错误(…)
返回承诺。拒绝(新错误(…)
。然后调用方将使用
someFunc().Then().catch()
获取值或查看错误。请阅读错误和承诺。