2016-09-27 4 views
2

私はAzure VM上でnode.jsアプリケーションを実行しています(PM2の負荷分散と再起動を伴う)。サーバーの設定とログ記録のコードは次のとおりです。Node.jsのリクエストステータスがありません。Morgan Logging

var logger = require('morgan'); 
var app = express(); 

app.set('views', path.join(__dirname, 'views')); 
app.set('view engine', 'jade'); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(flash()); 
app.use(express.static(path.join(__dirname, 'public'))); 

app.use('/', routes); 
app.use('/api/v01', api.router); 
app.use('/api/v02', apiv2.router); 

最後の日から、ウェブサイトへの接続に問題が発生しました。データを表示するには、いくつかのリロードが必要です。

私は何が起きているのか把握しようとしているログを見てきました。私はすべてのエラーが表示されませんが、この種のもののかなりの数のインスタンスがあります。これらは人々がページを表示することができないことと一致しているように見える

WebApp-2 GET /portal - - ms - - 
WebApp-3 GET /portal - - ms - - 
WebApp-2 GET/- - ms - - 
WebApp-2 GET/- - ms - - 

が。物事が作業している場合は、ログはより次のようになります。

WebApp-3 GET/302 16.532 ms - 58 
WebApp-3 GET /portal 200 335.192 ms - 5239 

フォーマットは:method :url :status :response-time ms - :res[content-length]according to the Morgan docsです。

私が気付いたことの1つは、サーバーが実際に動作していないときに、状態、応答時間、およびコンテンツの長さの代わりに-文字がログに記録されていることです。私はcontent-lengthのために-を見るのに慣れています。サーバーが304で応答したときに起こることです。回答時間やステータスが-であることは一度も見たことがありません。(GoogleとSOの両方で)検索していますが、これが本当に何を意味するのかは不明です。

このステータスの欠如が意味することは誰でも知っていますか?それがよく理解されている意味を持っているなら、私が作っている間違いがこれにつながるでしょうか?

+2

数日前にこれに関する問題が報告されました:https://github.com/expressjs/morgan/issues/121 –

+0

何が起こっているのかを知るのは難しいですが、ルートハンドラにバグがありますおそらくデータベースコールが終了しないか、何かが返されないかもしれません。 –

+0

@mparnisari:私はいくつかの私のページの説明としてそれを購入したいと思います。しかし、ログインではありません。特に、バックエンドはかなり広範にユニットテストされているためです。私はローカルホスト上でこれらの問題を抱えていません。これは私を混乱させ、データベースを疑う気が狂ってしまいます。 –

答えて

3

hereによると、GET/- - ms - -は本質的に、Node.jsがアイドル時間が長すぎるためにTCP接続を終了する前に応答を送信したことがないことを意味します。

各リクエストに応答が送信されていることを確認してください。

+0

もう1つのことは、特に 'next()'と呼ぶ応答を送信しない場合です。それは私のアプリ(私はちょうどそれが私のプロジェクトでは何を意味していることがわかった)、私は別のルートの呼び出しにparamを連鎖しているときに私はそれを参照してください、私はそれらのログを返すと、私はparamコントローラメソッド –

関連する問題