sql >> データベース >  >> NoSQL >> MongoDB

MongoDB、Express、Node.Js、GridFS-streamを使用してビデオと画像ファイルを保存する

    mongooseを使用せずに直接アップロードできます gridfs-stream を使用する シンプル:

    var express = require('express'),
        mongo = require('mongodb'),
        Grid = require('gridfs-stream'),
        db = new mongo.Db('node-cheat-db', new mongo.Server("localhost", 27017)),
        gfs = Grid(db, mongo),
        app = express();
    
    db.open(function (err) {
        if (err) return handleError(err);
        var gfs = Grid(db, mongo);
        console.log('All set! Start uploading :)');
    });
    
    //POST http://localhost:3000/file
    app.post('/file', function (req, res) {
        var writeStream = gfs.createWriteStream({
            filename: 'file_name_here'
        });
        writeStream.on('close', function (file) {
            res.send(`File has been uploaded ${file._id}`);
        });
        req.pipe(writeStream);
    });
    
    //GET http://localhost:3000/file/[mongo_id_of_file_here]
    app.get('/file/:fileId', function (req, res) {
        gfs.createReadStream({
            _id: req.params.fileId // or provide filename: 'file_name_here'
        }).pipe(res);
    });
    
    app.listen(process.env.PORT || 3000);
    

    完全なファイルと実行中のプロジェクトの場合:

    クローンノード-チート direct_upload_gridfs 、node appを実行します 続いてnpm install express mongodb gridfs-stream

    または

    Node-Cheat GridFSを介した直接アップロードREADME.md



    1. Mongoのドキュメント全体のサブドキュメントフィールドの平均

    2. MongoDBとApacheSolrの間でデータを同期する簡単な方法

    3. SpringとMongoDB:Bean定義の読み取り中のSAXParseException

    4. mongoのプリミティブパッケージを使用した部分一致