• nodejs的gridfs基本操作


    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    mongoose.connect('mongodb://127.0.0.1/test');
    var conn = mongoose.connection;
     
    var fs = require('fs');
    
    var Grid = require('gridfs-stream');
    Grid.mongo = mongoose.mongo;
     
    conn.once('open', function () {
      console.log('open');
      var gfs = Grid(conn.db);
    
      // 写文件
      var writestream = gfs.createWriteStream({
          filename: 'mongo_file.txt'
      });
      fs.createReadStream('./local.txt').pipe(writestream);
    
      writestream.on('close', function (file) {
        console.log(file.filename + ' Written To DB');
      });
    
      var fs_write_stream = fs.createWriteStream('./write.txt');
     
      // 读取文件
      var readstream = gfs.createReadStream({
          filename: 'mongo_file.txt'
      });
      readstream.pipe(fs_write_stream);
      fs_write_stream.on('close', function () {
          console.log('file has been written fully!');
      });
    
      // 根据文件名称
      gfs.remove({filename: 'mongo_file.txt'}, function (err) {
        if (err) return handleError(err);
        console.log('success');
      });
    
      // 根据fs.files._id删除
      gfs.remove({_id : '548d91dce08d1a082a7e6d96'}, function (err) {
        if (err) return handleError(err);
        console.log('success');
      });
    
      // 判断文件是否存在
      var options = {filename : 'mongo_file.txt'}; // 使用_id也可以
      gfs.exist(options, function (err, found) {
        if (err) return handleError(err);
        found ? console.log('File exists') : console.log('File does not exist');
      });
    
      // 获取文件基础信息
      gfs.files.find({ filename: 'mongo_file.txt' }).toArray(function (err, files) {
        if (err) {
          throw (err);
        }
        console.log(files);
      });
    }); 
  • 相关阅读:
    JDK源码阅读--AbstractStringBuilder
    JDK源码阅读--String
    JDK源码阅读--Object
    linux查看日志
    velocity 相关
    oracle Trigger
    ssm调用后台oracle存储过程统计分析数据
    oracle 优化相关
    synchronized 控制并发(活动秒杀)
    SpringBoot自动装配的原理
  • 原文地址:https://www.cnblogs.com/vipzhou/p/6905125.html
Copyright © 2020-2023  润新知