Skip to content

Instantly share code, notes, and snippets.

@unclebay143
Last active October 29, 2023 14:49
Show Gist options
  • Save unclebay143/afd096589fc868b86fd9edd1eb291f27 to your computer and use it in GitHub Desktop.
Save unclebay143/afd096589fc868b86fd9edd1eb291f27 to your computer and use it in GitHub Desktop.
// Import express into our project
const express = require("express");
// Import multer
const multer = require("multer");
// Creating an instance of express function
const app = express();
// The port we want our project to run on
const PORT = 3000;
// Express should add our path -middleware
app.use(express.static("public"));
// Body parser
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
// Multer file storage
const Storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, "./attachments");
},
filename: function (req, file, callback) {
callback(null, `${file.fieldname}_${Date.now()}_${file.originalname}`);
},
});
// Middleware to get attachments
const attachmentUpload = multer({
storage: Storage,
}).single("attachment");
// Root directory -homepage
app.get("/", (req, res) => {
res.sendFile("/index.html");
});
// Route to handle sending mails
app.post("/send_email", (req, res) => {
attachmentUpload(req, res, function (error) {
if (error) {
console.log(err);
return res.send("Error uploading file");
} else {
const recipient = req.body.email;
const subject = req.body.subject;
const message = req.body.message;
const attachmentPath = req.file.path;
console.log("recipient", recipient);
console.log("subject", subject);
console.log("message", message);
console.log("attachmentPath", attachmentPath);
}
});
});
// Express allows us to listen to the port and trigger a console.log() when you visit the port
app.listen(PORT, () => {
console.log(`Server is currently 🏃‍♂️ on port ${PORT}`);
});
@unclebay143
Copy link
Author

changed file name

@baneshiformaloo
Copy link

hey @unclebay143
I walk through your blog in this link
https://unclebigbay.com/build-an-email-application-using-node-js-express-js-with-gmail-and-nodemailer-all-in-one-article
and find a problem there .
in this snippet :
// Post route to handle retrieving data from HTML form to server
app.post("/send_email", (req, res) => {
if (error) {
console.log(err);
return res.send("Error uploading file");
} else {
const recipient = req.body.email;
const subject = req.body.subject;
const message = req.body.message;
const attachmentPath = req.file.path;
console.log("recipient:", recipient);
console.log("subject:", subject);
console.log("message:", message);
console.log("attachmentPath:", attachmentPath);
}

});
you forgot one line that is
attachmentUpload(req, res, function (error) {
but in repo every thing seems good .
I enjoy your blog .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment