2016-08-05 17 views
2

私はAzureモバイルアプリケーションの簡単なテーブル用のカスタムスクリプトを作成しようとしており、次のコードを持っています。実行すると、「送信後にヘッダーを設定できません」というエラーが表示されます。私は間違って何をしていますか?Azureモバイルアプリの簡単なテーブルスクリプトをカスタム例外をスローする

table.insert(function (context) { 
    var request = context.req; 
    var response = context.res; 
    var customer = context.item; 
    var isactive = customer.active; 
    if (isactive ==="false"){ 
     response.status(406).send('Customer Error`); 
     //response.end(); 
     return; 
    } 
    else { 
     return context.execute(); 
    } 
} 

答えて

2

これは、一般的にres.sendまたはres.jsonによって引き起こされるが、要求ごとに複数回呼び出されます。空のアプリケーションのテーブルにコードをコピーし、エラーを再現できませんでした。エラーの原因となっているアプリケーションの別の場所に何かが存在する必要があります。

テーブルエンドポイントのPOSTにpostmanのようなものを使用すると、406応答とコンソールのエラー、またはエラーだけが表示されますか? 406レスポンスが表示された場合は、406が返された後にres.sendがパイプラインのどこかで実行されています。もしそうでなければ、それは前に起こっている。

実行中の他のミドルウェアはありますか?

+0

ちょうど私に起こった別のもの - どのバージョンを使用していますか?数ヶ月前にリリースされたバージョンで解決された問題がありました。 –

+0

コンソール上と郵便配達員の両方にポストしていました。私はcatchブロックを追加してエラーを記録した後、コンソールにポストしていました。私は他のミドルウェアを持っていませんでした。しかし、私は最終的には、このコードのためのカスタムミドルウェアを追加することによって動作するようにしました。 – MSJ

+0

しかし私は新しい問題があります。カスタムミドルウェアを使ってクエリを実行した後、私はtable.insert(function(context))に戻ります。 return context.execute()メソッドを使用している場合、ブラウザに戻るレスポンス(たとえば、パスワードフィールドを削除したい)を操作するにはどうすればよいですか? – MSJ

関連する問題