Как сохранить PDF-файл, используя nodeJS + multer + sequelize - PullRequest
0 голосов
/ 14 февраля 2020

Я использую multer для сохранения файлов во временную папку, я хотел бы знать, как сохранить этот файл pdf в базе данных postgres, используя sequelize.

Миграция:

module.exports = {
  up: (queryInterface, Sequelize) => {
    return queryInterface.createTable('testeUploads', {
      id: {
        allowNull: false,
        autoIncrement: true,
        primaryKey: true,
        type: Sequelize.INTEGER
      },
      fileDocumento: {
        type: Sequelize.BLOB
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE
      }
    });
  },
  down: (queryInterface, Sequelize) => {
    return queryInterface.dropTable('testeUploads');
  }
};

Моя модель:

    module.exports = (sequelize, DataTypes) => {
  const testeUpload = sequelize.define('testeUpload', {
    fileDocumento: DataTypes.BLOB
  }, {});
  testeUpload.associate = function(models) {
    // associations can be defined here
  };
  return testeUpload;
};

При использовании метода create, что я должен передать в поле fileDocument?

1 Ответ

0 голосов
/ 14 февраля 2020

Вам нужно передать объект Buffer. Если вам не нужно хранить файл в этой временной папке, вы можете хранить его только в памяти, и multer предоставит вам файл в качестве буфера.

Документы:
Хранение в памяти Multer
Типы данных Sequelize См. BLOB

const express = require('express');
const app = express();
const port = 3000;
const multer  = require('multer');
const storage = multer.memoryStorage();
const upload = multer({ storage: storage });
app.post('/', upload.single('avatar'), function (req, res, next) {
  console.log(req.file);
  // req.file.buffer is what you want to pass to create
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...