2016-01-18 60 views
1

我想使用expressJS錯誤處理程序處理我的應用程序中的錯誤。將多個參數傳遞給ExpressJS錯誤處理程序

的問題是我要附加一個自定義消息的錯誤,所以我可以自定義將被記錄,並保持語法輕量級:

if(err) 
    return next(err, "Invalid user Id"); 

但我只看到了文檔中的例子,在互聯網上只使用1個錯誤參數。 解決辦法可以傳遞一個對象,但那麼語法不會是輕量級的更多:

if(err) 
    return next({ 
    error : err, 
    message : "Invalid user Id" 
    }); 

我如何能做到這一點與快遞?

回答

1

除了當前的解決方案,你可以做

if (err) { 
    err.message += ": Invalid user id"; 
    return next(err); 
} 

,或者如果你想擺脫原來的ERR對象,只是通過一個新的

if (err) { 
    return next(new Error("Invalid user id")); 
} 
+0

我想保持原來的錯誤並能夠在一行中處理它 – IggY

+0

雖然我真的沒有看到在一行上完成所有操作的要點 'return next(err.message + =「:無效的用戶標識」; err);' 但是,相當多地降低了可讀性。你可以將操作提取到一個單獨的函數中,給出一個「oneliner」的幻覺,但這似乎並不是必需的。 可以在多行上放東西。不完全是。它是。 – Antiokus

相關問題