Restifyルートにルータハンドラが設定されています。そのハンドラでは、カスタムモジュールを呼び出してエラーチェックを行います。私がエラー状態になったとき、私のコードは次のエラーを返します(エラー)。私はブラウザにエラーメッセージが表示されますが、何らかの理由で私のコードはそれ以降も実行を続けます。Node.jsエラーを返した後にRestireコードが実行されます
Restifyルータハンドラ
HttpHandlers.prototype.callHttp = function(req, res, next) {
myUtils.checkInputRules(req, res, next, handlerConfig.inputRules);
//This code is getting executed:
logger.debug("Updated ...
と呼ばれている機能:
myUtils.checkInputRules = function checkInputRule(req, res, next, inputRules) {
...
} else {
if (inputRule.ifFalse) {
var evalStr = inputRule.ifFalse;
if (evalStr != null) {
logger.debug("Executing condition.iFalse: "+evalStr);
//The code is itting this location
return next(new Error("Internal Error: Failure."));
...
あなたはちょうどエラーを投げることができますか? – Thomas
@トーマスは、物事を支配するために、コール関数にreturn next(err)をコピーし、それが期待どおりに機能するようにしてから、checkInputRulesの先頭に移動しました。 Restify APIからの私の理解とStackoverflowのここの答えは、return next(err)がRestifyとExpressでエラーを設定する正しい方法だということです。 – user994165