Amazonec2インスタンスにmongoサーバーを備えたノードアプリがあります。うまく機能しますが、新しいAPI呼び出しを追加しただけで、呼び出すたびにサーバーがフリーズし、数時間アクセス/SSH接続できなくなります。これが発生している間、サーバーがダウンし、サーバーに依存しているアプリが使用できなくなり、ユーザーが怒ります...
このコードはローカルホストで完全に機能しますが、サーバーで実行するとすぐにフリーズします。私の考えは、それがモンゴを墜落させるかもしれないということですか?なぜこれが起こるのか分かりません...
誰かが何がうまくいかないかについて何か考えがあれば、私に知らせてください。
ノードはエクスプレスを使用しています。send_error関数はres.send({some error})を実行します。db.CommentModelはmongoose.model('comment'、Comment);を返します。
app.jsで
app.get('/puzzle/comment/:id', auth.restrict, puzzle.getComments);
getCommentsを定義するファイル内
exports.getComments = function(req, res)
{
var userID = _u.stripNonAlphaNum(req.params.id);
var CommentModel = db.CommentModel;
CommentModel.find({user: userID}, function(e, comments) {
if(e)
{
err.send_error(err.DB_ERROR, res);
}
else if (!comments)
{
err.send_error(err.DB_ERROR, res);
}
else if (comments.length == 0)
{
res.send([]);
}
else
{
var commentIDs = [];
for (var i = 0; i<comments.length; i++)
{
commentIDs.push({_id: comments[i].puzzle});
}
var TargetModel = pApp.findPuzzleModel(_u.stripNonAlphaNum(req.apiKey));
TargetModel.find({removed: false, $or: commentIDs}, function(e, puzzles) {
if(e)
{
err.send_error(err.DB_ERROR, res);
}
else if (!puzzles)
{
err.send_error(err.DB_ERROR, res);
}
else
{
res.send(puzzles);
}
});
}
});
}