構造が次のようなノード アプリケーションがあります。
app.coffee -> routes -> controller -> service -> redis
サービス層のどこかに、次のようなバグがありました。
if err?
callback err
else if uid?
user =
uid: uid
username: username
callback null, user # <- indentation is wrong
else
callback null, null
7 行目のコールバック呼び出しが見えますか? 必要以上に 1 タブ分インデントされています。そして、アプリを実行したときに受け取るものは次のとおりです。
> coffee app.coffee
app.coffee:15:24: error: unexpected TERMINATOR
routes app
^
app.coffee
ソースファイルと一致しない上記の行は次のとおりです。
app.use app.router
routes = require './conf/routes'
routes app
原因を見つけるのにかなりの時間と多くの意志の力が必要でした. 繰り返しますが、バグはアプリの 3 層下のサービス層にあります。しかし、所在について言及しているエラーには何もありません。ファイルunexpected TERMINATOR
にあるということだけです。app.coffee
私はcoffeescriptとnode.jsにまったく慣れていないので、私の質問は、このようなエラーメッセージが表示され、原因が何マイルも離れている場合、経験豊富なコーヒースクリプト担当者またはノード担当者はどのように対処しますか? このようなバグを追跡するためのベスト プラクティスや方法があるのではないでしょうか? それとも最初から防ぐ?