eddik 发表于 2017-2-21 10:55:11

nodejs 操作gridfs

  function exixtTest(Response) {
  MongoClient.connect("mongodb://test:test@192.168.147.128: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:test@192.168.147.128: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:test@192.168.147.128: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:test@192.168.147.128: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:test@192.168.147.128: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();
  });
  });
  });
  }
页: [1]
查看完整版本: nodejs 操作gridfs