我開始下的NodeJS/Express和我面臨着以下問題(我可能沒有得到異步編程但所有的招數)快遞/ Node.js的中間件提高誤差,保持加工
我「已經成爲帶如果組oauth_token paramters傳遞檢查的中間件(其實我的節點服務器上實現的OAuth層)
我這樣做:
function myMiddle(req,res,next) {
var oAuthToken = req.query["oauth_token"];
if (oAuthToken == undefined) {
res.send(406);
res.end();
next(new Error('No token provided'));
}
/* Basically doing some DB stuff with MongoDB, connecting and using oAuthToken provided to query, etc.. */
的事情是,我所期望的代碼當他沒有收到oauth_token參數時「死亡」請求參數。它實際上引發了一個錯誤,並且向我的HTTP客戶端返回了大量的錯誤,但是代碼一直在處理後面,並且引發了由我的處理代碼導致的可變標頭錯誤,並且我的腳本消失了。
我失蹤的東西?感謝提前。
我試過,並且代碼不斷處理。就像我在下面的評論中所說的,我通過返回下一個('error')來修正它,而不是僅僅調用它。這對你來說似乎是邏輯嗎? – spacenick 2012-01-30 15:26:12
它沒有。 :D實際上它的確如此,它只意味着在調用'next()'之後強制函數停止工作。也許你應該修改一下我的代碼並使用'if {...} else {...}'?在next()後面運行什麼(與響應有什麼關係)是非常重要的。這就是我所能說的,祝你好運! – freakish 2012-01-31 09:12:52