Добавить и получить аудио - PullRequest
0 голосов
/ 15 марта 2019

Я добавил и восстановил изображение в MongoDB, используя Node. Могу ли я использовать тот же код с некоторыми настройками? Предложить мне.

upload.ts

var multer = require("multer");
export let UPLOAD_PATH = "uploads";
const storage = multer.diskStorage({
  destination: function(req, file, cb) {
    req;
    file;
    cb(null, UPLOAD_PATH);
  },
  filename: function(req, file, cb) {
    req;
    cb(null, file.fieldname + "-" + Date.now() + ".jpg");
  }
});
export const upload = multer({ storage: storage }).single("avatar");

image.controller.ts

Upload

this._model.findOne(
  { ["user"]: new mongoose.Types.ObjectId(user._id) },
  img => {
    upload(req, res, err => {
      if (err) {
        res.status(500).json(null);
      } else {
        // Create a new image model and fill the properties
        let newImage = new Image();
        newImage.filename = req.file.filename;
        newImage.originalName = req.file.originalname;
        newImage.desc = req.body.desc;
        newImage.url =
          req.protocol + "://" + req.get("host") + "/images/" + newImage._id;
        newImage.user = user._id;
        newImage.save(err => {
          if (err) {
            res.status(400).json(null);
          } else {
            res.status(201).json(img);
          }
        });
      }
    });
  }
);

Retrive 

  getImage = (req, res) => {
    const user = this.getUser(req, res);
    this._model.findOne({ ['user']: new mongoose.Types.ObjectId(user._id) }, (err, image) => {

      if (err) {
        res.status(500).json(null);
      }
      else if (image == null) {
        res.status(200).json(image);
      } else {
        // stream the image back by loading the file
        res.setHeader('Content-Type', 'image/jpeg');
        fs.createReadStream(path.join(UPLOAD_PATH, image.filename)).pipe(res);
      }
    })
  };

Можно ли использовать один и тот же код с некоторой модификацией для добавления и извлечения аудиофайлов с помощью Node, Express в Mongo?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...