MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Pobieranie pliku nie działa z nodejs gridfs

Być może będziesz musiał sprawdzić swoje wartości w params. Ale miejmy nadzieję, że to w pobliżu minimalna próbka zapewnia pewną pomoc:

Aktualizacja

I to pomogło, ponieważ podkreśla, że ​​szukasz _id jako nazwę pliku. Zamiast tego powinieneś to zrobić:

.createReadStream({
    _id: req.param('filename')
})

jeśli nie

.createReadStream({
    _id: mongoose.Types.ObjectId(req.param('filename'))
})

Ponieważ _id pole jest inne niż nazwa pliku

app.js

var express = require('express');
var routes = require('./routes');
var http = require('http');
var path = require('path');

var app = express();

var mongoose = require('mongoose');
var Grid = require('gridfs-stream');
Grid.mongo = mongoose.mongo;

var conn = mongoose.createConnection('mongodb://localhost/mytest');

conn.once('open', function() {
    console.log('opened connection');
    gfs = Grid(conn.db);

    // all environments
    app.set('port', process.env.PORT || 3000);
    app.use(express.logger('dev'));
    app.use(app.router);

    // development only
    if ('development' == app.get('env')) {
        app.use(express.errorHandler());
    }

    app.get('/', routes.index);

    http.createServer(app).listen(app.get('port'), function(){
        console.log('Express server listening on port ' + app.get('port'));
    });

});

trasy/index.js

exports.index = function(req, res){

    res.set('Content-Type', 'image/jpeg');
    gfs.createReadStream({
        filename: 'receptor.jpg'
    }).pipe(res);

};



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pobierz pozycję wybranego dokumentu w kolekcji [mongoDB]

  2. Topologia została zniszczona podczas używania MongoDB z natywnym sterownikiem i Express.js

  3. Mapa/redukcja mongoDB minus redukcja

  4. Reaguj na żądania POST za pomocą Express/Node i MongoDB

  5. Używanie @Resource injection dla Mongo db, wewnątrz Web Bundle wewnątrz OSGI, pod Liberty Profile