NodeJS,Express和Mongoose:调用过于缓慢

我有一个非常简单的nodeJS应用程序。 由于某种原因,服务器的响应时间差别很大。

这是我的app.js:

var express = require('express'); var http = require('http'); var path = require('path'); var Models = require('./schema/schema.js'); var app = express(); // all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.json()); app.use(express.urlencoded()); app.use(express.static(path.join(__dirname, 'public'))); app.use(function(req, res, next) { var start = Date.now(); res.on('header', function() { var duration = Date.now() - start; var time = Date.now() - req.start; fs.appendFile("times.txt", time+"\n", function (err) {}); }); next(); }); app.use(app.router); app.get("/tags", function(req, res) { var query = Models.Tag.find({}).sort({'popularity': -1}).limit(200); query.exec(function(err, tags) { res.status(200); res.send(tags); }); } 

数据总是正确地返回,但是这是我的响应时间,由'header'函数测量:

 19 11 13 6 10 10 8 9 2 62449 57862 24919 9975 11 17 21116 10 3 2 2 13 

大多数不到10毫秒,但经常有一分多钟。 到底是怎么回事?

架构:

 var tagSchema = new mongoose.Schema({ name : { type: String, trim: true }, popularity :{ type:Number, default:0 }, created_date: { type:Date, default:Date.now }, last_update: { type:Date, default:Date.now } }); 

你有没有尝试使用一个托pipe的mongo服务器,如mongohq,只是为了看看是否是本地IO延迟问题? 一个小的数据库不应该有任何问题,除非你正在做一些疯狂的事,你显然不是。