nodejs 操作gridfs

function exixtTest(Response) {

    MongoClient.connect("mongodb://test:[email protected]:27017/test", function(err, db) {

        var gs = new mongodb.GridStore(db, "hello.txt", "r");

        gs.open(function(err, gs) {

            mongodb.GridStore.exist(db, "/tmp/hello.txt", function(err, result) {

                db.close();

                console.log(err, result);

                if (!err) {

                    Response.end("haha");

                } else {

                    Response.end("err");

                }

            })

        });

    });

}

function createFileFromData(Response) {

    MongoClient.connect("mongodb://test:[email protected]:27017/test", function(err, db) {

        var gs = new mongodb.GridStore(db, new Date().getTime() + ".txt", "w", {

            "content_type" : "text/explain",

            "metadata" : {

                "author" : "Daniel"

            },

            "chunk_size" : 1024 * 4

        });

        gs.open(function(err, gs) {

            gs.write("hello world", function() {

                gs.close(function(err) {

                    db.close();

                    if (!err) {

                        Response.end("success");

                    } else {

                        Response.end("fail");

                    }

                });

            });

        });

    });

}

function createFsFromFile(Response){

        MongoClient.connect("mongodb://test:[email protected]:27017/test", function(err, db) {

        var gs = new mongodb.GridStore(db, new Date().getTime() + ".mp3", "w", {

            "content_type" : "stream/music",

            "metadata" : {

                "author" : "wangdonghua",

                "originName":"光辉岁月.mp3"

            },

            "chunk_size" : 1024 * 4

        });

        gs.open(function(err, gs) {

            gs.writeFile("d:/ghsy.mp3", function() {

                gs.close(function(err) {

                    db.close();

                    if (!err) {

                        Response.end("success");

                    } else {

                        Response.end("fail");

                    }

                });

            });

        });

    });

}

function readDataFromGFS1(Response){

     MongoClient.connect("mongodb://test:[email protected]:27017/test", function(err, db) {

        var gs = new mongodb.GridStore(db, "1422689423998.mp3", "r");

        gs.open(function(err, gs) {

           gs.read(gs.length ,function(err,data){

               /**

                * gs.length - length of the file in bytes

                  gs.contentType - the content type for the file

                  gs.uploadDate - when the file was uploaded

                  gs.metadata - metadata that was saved with the file

                  gs.chunkSize - chunk size

                * */

               gs.close();

               db.close();

               if(!err){

                   Response.end(data);

               }else{

                   Response.end("error");

               }

           });

        });

    });

}

function readDataFromGFS2(Response){

     MongoClient.connect("mongodb://test:[email protected]:27017/test", function(err, db) {

        var gs = new mongodb.GridStore(db, "1422689423998.mp3", "r");

        gs.open(function(err, gs) {

           var readStream = gs.stream(true);

           readStream.pipe(Response);

           readStream.on("error",function(){

               gs.close();

               db.close();

               Response.end("read file error");

           });

           readStream.on("end",function(){

               gs.close();

               db.close();

               Response.end();

           });

        });

    });

}

猜你喜欢

转载自daydayup0658.iteye.com/blog/2182028