как загрузить файл из формы, а затем отправить его с помощью nodemailer

#javascript #node.js #express #multer #nodemailer

#javascript #node.js #экспресс #мультер #nodemailer

Вопрос:

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

Мне было интересно, какой наилучший способ отправить содержимое формы вместе с прикрепленным резюме через nodemailer.

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

Процесс, который я ищу, заключается в следующем: пользователь заполняет форму вместе с резюме, затем отправляет содержимое формы вместе с резюме по электронной почте. Я не хочу ничего сохранять.

Что я пробовал:

  • Я пытался использовать multer. Однако, когда я добавляю enctype="multipart/form-data" в свои теги формы, <form action="/jobrequest" method="POST" enctype="multipart/form-data"> req.body объект перестает отправлять содержимое формы.

это файл конфигурации моего приложения:

 const express = require('express')
const app = express()
const router = require('./router')
const cookieParser = require('cookie-parser')
const session = require('express-session')
const flash = require('connect-flash')
const dotenv = require('dotenv')
dotenv.config()

app.use(express.urlencoded({extended: false}))
app.use(express.json())
app.use(express.static('public'))
app.use(cookieParser('secret'))
app.use(session({
    secret: 'SECRET-KEY-NOT-REAL',
    cookie: {maxAge: null},
    resave: false,
    saveUninitialized: false
}))

app.use(flash())
app.set('views', 'views')
app.set('view engine', 'ejs')
app.use('/', router)
app.use(function (req, res, next) {
    res.status(404).render('404')
  })
app.use(function (err, req, res, next) {
    console.error(err.stack)
    res.status(500).render('404')
})

app.listen(process.env.PORT)
  

Комментарии:

1. Я не вижу, чтобы в вашей конфигурации использовался multer.

2. Загрузите файл с помощью multer