Problem :1) getting validator error when saving file buffer together in mongo
2) getting [Object: null prototype] {}
when console logging req.body
router file
const express=require('express');
const router=new express.Router();
const {renderCreateProductPage,createProducts}=require('../controllers/create products controller')
const multer=require('multer');
router.use(express.urlencoded({extended: true}));
router.use(express.json())
const upload=multer({
limits:500000,
fileFilter(req,file,cb){
if(!file.originalname.match(/\.(jpg|jpeg|png)$/)){
return cb(new Error('please upload JPEG,JPG,PNG file extension'));// sending error
}
cb(undefined,true);
}
})
router.get('/admin-panel/products/create-product',renderCreateProductPage)
router.post('/admin-panel/products/create-product/recorded',upload.single('image'),createProducts);
module.exports=router
controller file
const {CreateProduct}= require('../database/model');
exports.renderCreateProductPage=(req,res)=>{
res.render('create-product');
}
exports.createProducts=async(req,res)=>{
console.log(req.body);
const createProductsInstance= new CreateProduct();
createProductsInstance.name=req.body.name;
createProductsInstance.price=req.body.price;
createProductsInstance.size=req.body.size;
createProductsInstance.stock=req.body.stock;
createProductsInstance.unit=req.body.unit;
createProductsInstance.category=req.body.category;
createProductsInstance.brand=req.body.brand;
// createProductsInstance.images=req.file.buffer;
console.log(req.file);
try{
await createProducts.save()
res.send('success');
}
catch(error){
console.log(error)
res.status(404).send('not successfull');
}
}
err in console
server fired off
connection sucessful
[Object: null prototype] {}
{
fieldname: 'image',
originalname: 'profile-pic.jpg',
encoding: '7bit',
mimetype: 'image/jpeg',
buffer: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 48 00 48 00 00 ff e1 00 8c 45 78 69 66 00 00 4d 4d 00 2a 00 00 00 08 00 05 01 12 00 03 00 00 00 01 00 01 ... 223959 more bytes>,
size: 224009
}
Error: register products validation failed: name: Path `name` is required., price: Path `price` is required., size: Path `size` is required.,
stock: Path `stock` is required., unit: Path `unit` is required., category: Path `category` is required., brand: Path `brand` is required.
at ValidationError.inspect (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\error\validation.js:48:26)
at formatValue (node:internal/util/inspect:782:19)
at inspect (node:internal/util/inspect:347:10)
at formatWithOptionsInternal (node:internal/util/inspect:2167:40)
at formatWithOptions (node:internal/util/inspect:2029:10)
at console.value (node:internal/console/constructor:324:14)
at console.log (node:internal/console/constructor:360:61)
at c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\trial.js:52:21
at processTicksAndRejections (node:internal/process/task_queues:96:5) {
errors: {
name: ValidatorError: Path `name` is required.
at validate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1337:13)
at SchemaString.SchemaType.doValidate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1321:7)
at c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\document.js:2830:18
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
properties: [Object],
kind: 'required',
path: 'name',
value: undefined,
reason: undefined,
[Symbol(mongoose:validatorError)]: true
},
price: ValidatorError: Path `price` is required.
at validate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1337:13)
at SchemaNumber.SchemaType.doValidate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1321:7)
at c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\document.js:2830:18
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
properties: [Object],
kind: 'required',
path: 'price',
value: undefined,
reason: undefined,
[Symbol(mongoose:validatorError)]: true
},
size: ValidatorError: Path `size` is required.
at validate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1337:13)
at SchemaString.SchemaType.doValidate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1321:7)
at c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\document.js:2830:18
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
properties: [Object],
kind: 'required',
path: 'size',
value: undefined,
reason: undefined,
[Symbol(mongoose:validatorError)]: true
},
stock: ValidatorError: Path `stock` is required.
at validate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1337:13)
at SchemaNumber.SchemaType.doValidate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1321:7)
at c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\document.js:2830:18
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
properties: [Object],
kind: 'required',
path: 'stock',
value: undefined,
reason: undefined,
[Symbol(mongoose:validatorError)]: true
},
unit: ValidatorError: Path `unit` is required.
at validate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1337:13)
at SchemaString.SchemaType.doValidate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1321:7)
at c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\document.js:2830:18
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
properties: [Object],
kind: 'required',
path: 'unit',
value: undefined,
reason: undefined,
[Symbol(mongoose:validatorError)]: true
},
category: ValidatorError: Path `category` is required.
at validate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1337:13)
at SchemaString.SchemaType.doValidate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1321:7)
at c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\document.js:2830:18
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
properties: [Object],
kind: 'required',
path: 'category',
value: undefined,
reason: undefined,
[Symbol(mongoose:validatorError)]: true
},
brand: ValidatorError: Path `brand` is required.
at validate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1337:13)
at SchemaString.SchemaType.doValidate (c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\schematype.js:1321:7)
at c:\Users\mahir\OneDrive\Documents\E Commerce Project\backend\node_modules\mongoose\lib\document.js:2830:18
at processTicksAndRejections (node:internal/process/task_queues:78:11) {
properties: [Object],
kind: 'required',
path: 'brand',
value: undefined,
reason: undefined,
[Symbol(mongoose:validatorError)]: true
}
},
_message: 'register products validation failed'
}
type or paste code here