Getting a Strange Error I have tried Everything but My code Doest not pick up Req.file..
I AM new to Nodejs And Express, AND i was try to upload an image using multer.
Req.file is showing UNDEFINED and Image is not uploading
This is my source code with using PUG(template engine)
Bumper.pug
extends base.pug
block style
style
include ../static/productUpload.css
block scripts
script(src="../static/categorienav.js")
//- script(src="../static/productid.js")
block content
p.heading
| Upload BUMPER
.UploadPage
.Uploadinfo
p#PID BUMPER
form.uploadform(action=`/BumperUpload` , method="post" enctype="multipart/form-data")
input.catsclass(type="file",name="file" accept="image/*" required)
input.catsclass(type="text",name="Link",placeholder="paste Link here" required)
input.catsclass(type="submit")
| #{Change}
Bumper.js
var express = require('express');
var myrouter= express.Router();
var bodyparser = require('body-parser');
var fs = require('fs');
var multer = require('multer');
// Initialize the express object
var app = express();
// Use body-parser to parse incoming data
app.use(bodyparser.urlencoded({extended : true}))
app.set('view engine', 'pug') // Set the template engine as pug
app.set('views', [__dirname + '/views', __dirname + '/views2']); // Set the views directory
myrouter.get('/BumperUpload',(req,res)=>{
res.render('Bumper.pug');
})
var storage = multer.diskStorage({
destination: function (request, file, callback) {
callback(null, './uploads/');
},
filename: function (request, file, callback) {
console.log(file);
callback(null, file.originalname)
}
});
var upload = multer({ storage: storage });
myrouter.post('/BumperUpload', upload.single('file'), function (req, res) {
console.log(req.file);
if (req.file) {
console.log('Uploading File');
var profileImageOriginlName=req.file.originalname;
var profileImageName=req.file.name;
var profileImageMime=req.file.mimetype;
var profileImagePath=req.file.path;
var profileImageExt=req.file.extension;
var profileImageSize=req.file.size;
}
else
{
var profileImageName='noimage.png';
}
console.log(profileImageName);
res.send("done")
});
module.exports = myrouter;
Index.js
const express = require("express");
const path = require("path");
const fs = require("fs");
const app = express();
const port = 80;
const bodyparser = require('body-parser')
// var http = require('http');
const fileUpload = require('express-fileupload');
var nodemailer = require('nodemailer');
// var mail = require("./static/mail.js")
//////mongojson = require("./mongodb.js")
var domain = require("domain").create();
var mongoose = require('mongoose');
var HOME = require('./models/HOME/HOME.js')
var Bumper = require('./models/HOME/Bumper.js');
var MongoClient = require('mongodb').MongoClient;
app.use('/static', express.static('static')) // For serving static files
app.use(express.urlencoded());
app.use(fileUpload());
// PUG SPECIFIC STUFF
app.set('view engine', 'pug') // Set the template engine as pug
app.set('views', [__dirname + '/views', __dirname + '/views2']); // Set the views directory
app.use('/', Bumper);
// START THE SERVER
app.listen(port, () => {
// //console.log(res);
//console.log(`The application started successfully on port ${port}`);
});
package.json
{
"name": "rk",
"version": "1.0.0",
"description": "",
"main": "param.js",
"dependencies": {
"bcryptjs": "^2.4.3",
"body-parser": "^1.19.0",
"bootstrap-icons": "^1.1.0",
"connect-busboy": "0.0.2",
"connect-flash": "^0.1.1",
"cookie-parser": "^1.4.5",
"crypto": "^1.0.1",
"domain": "0.0.1",
"express": "^4.17.1",
"express-fileupload": "^1.2.0",
"express-session": "^1.17.1",
"filesystem": "^1.0.1",
"formidable": "^1.2.2",
"jquery": "^3.5.1",
"jsonwebtoken": "^8.5.1",
"localStorage": "^1.0.4",
"method-override": "^3.0.0",
"mongodb": "^3.6.3",
"mongoose": "^5.10.14",
"multer": "^1.4.2",
"nodemailer": "^6.4.16",
"passport": "^0.4.1",
"passport-local": "^1.0.0",
"pug": "^3.0.0"
},
"devDependencies": {},
"scripts": {
"start": "nodemon param.js"
},
"author": "RISHABH GARG",
"license": "ISC"
}
Result:
Database Connected <br>
undefined // req.file is showing undefined<br>
noimage.png //image is not upload<br>