mongodb の GridStore を使用しようとしていますが、次のコードを試すと奇妙な無限ループの問題が発生しますGridStore.exist(db, req.params.filename, function(err, result){
以下は、コード全体とそのデバッグ出力です
var express = require('express'),
mongoose = require('mongoose');
var app = express();
var db = mongoose.createConnection('mongodb://localhost/dev_gridfs');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.errorHandler({dumpExceptions: true, showStack : true}));
app.get('/', function(req,res){
console.log('main');
res.send('<img src="/images/test.jpg"/>');
});
var GridStore = mongoose.mongo.GridStore;
app.get('/images/:filename', function(req, res){
console.log('in get image: ' + req.params.filename);
GridStore.exist(db, req.params.filename, function(err, result){
console.log('in gridstore exist');
if (err) {
console.log(err);
res.status(500);
res.send();
}
if (result) {
console.log('file found');
//TODO code for sending the file
res.send('');
} else {
res.status(404);
res.send();
}
});
});
app.listen(3000);
console.log('listening on 3000');
印刷された出力は
main
in get image: test.jpg
バージョン: [ノード:v0.8.11、エクスプレス: 3.0.0rc4、マングース: 3.2.1]
任意の提案をいただければ幸いです。これがノード mongodb ドライバーのバグであるかどうかはわかりませんが、ドライバーの問題トラッカーの問題としてまだ見つかっていません。