マングースは、データを取得しているときにNode.jsをブロックします。私はそれが絶対にブロックされていないと考えられてコールバックが表示されたら、それはちょうどそこに戻ってください。私はそれだけで周りに10秒のためのNodeJSを凍結するExpressJSでこのルートを実行すると、誰もがその接続に到達することはできません場合はマングースクエリブロックNode.js
Container.find({}, function (err, documents) {
res.status(200).send(documents);
});
:
問題がです。
Mongooseを使用して最初にMongoDBとオープンな接続を確立していて、後でそれを実行しません。どうしたの?それはそのように動作するはずですか?
UPDATE:
だからこれは私が
function initialDb() {
seed();
seedStructure();
startApplication();
}
database.connect();
database.loadModels(initialDb);
をマングースinitの方法であり、これは私が接続場所ですし、initモデル
import mongoose from 'mongoose';
import chalk from 'chalk';
import config from '../config';
export default {
loadModels(callback){
require('../../models/site');
require('../../models/page');
require('../../models/container');
require('../../models/template');
require('../../models/theme');
if (typeof callback === 'function') {
return callback();
}
},
connect() {
mongoose.connect(config.db.uri, function (err) {
if (err) {
console.error(chalk.red('Could not connect to MongoDB!'));
console.log(err);
}
});
},
disconnect(callback) {
mongoose.disconnect(function (err) {
console.info(chalk.yellow('Disconnected from MongoDB.'));
callback(err);
});
}
};
とモデル
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var container = new Schema({
});
let model = mongoose.model('container', container);
module.exports = model;
約26k文書を返します。
これらのクエリは削除されてはならないことは間違いありません。あなたは、あなたがあなたのモデルコードとmongooseにどのように接続しているか、もう少し文脈を共有できますか? –
@JohnnyHK約26kレコードを返します。 – Shiroo
@NickTomlin更新情報 – Shiroo