Node.js NodeJS、Express和&;猫鼬:通话间歇缓慢

Node.js NodeJS、Express和&;猫鼬:通话间歇缓慢,node.js,mongodb,express,Node.js,Mongodb,Express,我有一个非常简单的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', proc

我有一个非常简单的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
    }
});

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

流行度在你的模型中有索引吗?不,我想没有。这对性能有很大影响吗?数据库在哪里?在您的计算机上?还是在某些saas上是一个免费实例?我不认为这是一致的行为,甚至不可能复制。这很像是在虚拟机上运行,而实际硬件环境中发生的其他事情会影响结果。一个200条记录的工作集不可能用其他方式来解释。我认为你需要收集更多的信息,你现在所知道的只是有些事情进展缓慢。检查mongo中是否有任何查询速度较慢:。不过,我必须同意@NeilLunn的观点,你可能正在某种共享托管平台上运行,即使你认为你不是。