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

Node.js/ExpressとMongooseを使用してMongoDBに画像を保存します

    以下の例は、mongooseを使用してMongoDBに画像をアップロードする方法を示しています。元のソースについては、このリンクをクリックしてください

    var express = require('express');
    var fs = require('fs');
    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    
    var imgPath = '/path/yourimage.png';
    
    mongoose.connect('localhost', 'testing_storeImg');
    
    var schema = new Schema({
        img: { data: Buffer, contentType: String }
    });
    
    var A = mongoose.model('A', schema);
    
    mongoose.connection.on('open', function () {
      console.error('mongo is open');
    
      A.remove(function (err) {
        if (err) throw err;
    
        console.error('removed old docs');
    
        // store an img in binary in mongo
        var a = new A;
        a.img.data = fs.readFileSync(imgPath);
        a.img.contentType = 'image/png';
        a.save(function (err, a) {
          if (err) throw err;
    
          console.error('saved img to mongo');
    
          // start a demo server
          var server = express.createServer();
          server.get('/', function (req, res, next) {
            A.findById(a, function (err, doc) {
              if (err) return next(err);
              res.contentType(doc.img.contentType);
              res.send(doc.img.data);
            });
          });
    
          server.on('close', function () {
            console.error('dropping db');
            mongoose.connection.db.dropDatabase(function () {
              console.error('closing db connection');
              mongoose.connection.close();
            });
          });
    
          server.listen(3333, function (err) {
            var address = server.address();
            console.error('server listening on http://%s:%d', address.address, address.port);
            console.error('press CTRL+C to exit');
          });
    
          process.on('SIGINT', function () {
            server.close();
          });
        });
      });
    
    });
    


    1. マングースにスキーマとモデルの両方があるのはなぜですか?

    2. どうすればFlaskでMongoDBを使用できますか?

    3. Redis、Node.js、Socket.io:クロスサーバー認証とnode.jsの理解

    4. MongoDBでElasticsearchを使用するにはどうすればよいですか?