Как установить связь с загрузкой файла (multer) и userId в express и psql? - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь настроить пользователя на загрузку одного изображения. Это код, который у меня есть в роутере

const multer = require('multer')
const storage = multer.diskStorage({
  destination: function (req, file, cb) {
    cb(null, 'uploads/')
  },
  filename: function (req, file, cb) {
    cb(null, file.filename + '-' + Date.now() + '.jpg')
  }
})

const upload = multer({ storage: storage }).single('image')

appRouter.post('/upload', async (req, res) => {
  try {
    const uploadImage = await Image.create(req.body)
    upload(req, res, () => {
      res.json({
        uploadImage,
        success: true,
        message: 'Image uploaded'
      })
    })
  } catch (err) {
    console.log(err)
  }
})

, и вот как он у меня в модели

module.exports = (db, Sequelize) => {
    return db.define('image', {})
} 

и это тоже.

const Image = imageModel(db, Sequelize)
User.hasOne(Image)

Это полноценное express приложение с аутентификацией, и я пытаюсь разрешить пользователям загружать свои собственные изображения.

Вот как это выглядит на почтальоне, userId по-прежнему нулевой : enter image description here

1 Ответ

0 голосов
/ 17 апреля 2020

Вы никогда не ассоциируете изображение с пользователем.

Вы создаете изображение, но не добавляете пользователя к изображению. Вам нужен способ идентифицировать пользователя, а затем связать его при создании (или после создания образа).

Возможно, вам потребуется реализовать способ, позволяющий пользователям идентифицировать себя, чтобы сделать это.

Ваша декларация модели подразумевает, что у пользователя есть изображение, это не значит, что у всех изображений есть пользователь, могут быть изображения без пользователей.

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