2016-10-20 16 views
0

羽(ExpressベースのAPIフレームワーク)戻りエラーレスポンスを作ることができるので、私はそれは私が単にインスタンス化し、適切なfeathers-errorsクラスエラー応答を作成するために知っている:は、どのように私は羽の本を読んだ

import {BadRequest} from 'feathers-errors'; 
const errorResponse = new BadRequest(`foo`, `bar`); 

をしかし、私はそのエラー応答をユーザーに返すのが難しいです。私は何もしませんが、エラー応答を返すエンドポイント...

class SomeService { 
    create(data) { 
     return new BadRequest(`foo`, `bar`); 
    } 
} 

を作成する場合でも、それは動作しません。代わりにエラー応答を取得し、私は応答がない、とChromeデバッガ内で私が見ることができます応答が保留中であることを示します(最終的にタイムアウトしてERR_EMPTY_RESPONSEになるまで)。

私はExpressのエラー処理について読んでみました、との例で私は人々が応答をラップするnextを使用しました。しかし、nextは、エラーハンドラから来ている、と私は私の羽のコードで、私はそのnext機能を得ることができますどこか分かりません。誰もが、私は、保留中でない、エラーレスポンスを完全を返すことができるか(nextかどうかを使用して)説明するのに役立つことができれば

、私はそれを大幅にいただければ幸いです。

答えて

2

あなたのサービスは約束を返すことがあります。あなたのコードが非同期されていない場合は、Promise.resolvePromise.rejectとの約束にそれを回すことができます。

class SomeService { 
    create(data) { 
     return Promise.reject(new BadRequest(`foo`, `bar`)); 
    } 
} 

また、あなたはきれいにフォーマットされたエラーを取得するために、Expressのエラーハンドラを登録していることを確認します

const errorHandler = require('feathers-errors/handler'); 

// Last in the chain 
app.use(errorHandler); 

もありますerror handling chapterの詳細については、こちらをご覧ください。

関連する問題