-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
import multer from 'multer'
import { defineEventHandler, callNodeListener } from 'h3'
import User from '~/server/models/user.model'
const upload = multer({
storage: multer.diskStorage({
destination: 'public/uploads',
filename: (_, file, cb) =>
cb(null, `${Date.now()}-${file.originalname}`)
}),
fileFilter: (_, file, cb) =>
cb(null, file.mimetype.startsWith('image/')),
})
export default defineEventHandler(async (event) => {
await callNodeListener(
// @ts-expect-error Nuxt 3
upload.single('avatar'),
event.node.req,
event.node.res
)
const file = event.node.req.file
if (!file) throw createError({ statusCode: 400, statusMessage: 'No file' })
const userId = event.context.userId // หรือรับจาก body / params
const avatarPath = `/uploads/${file.filename}`
await User.findByIdAndUpdate(userId, { avatar: avatarPath })
return { avatar: avatarPath }
})```Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels