Tenho o seguinte código em Node.js :
Controller:
'use strict';
const multer = require('multer');
require('../utils/date');
const mongoose = require('mongoose');
const noticiaSchema = mongoose.model('noticiaSchema');
exports.get = async (req, res) => {
await noticiaSchema.find({})
.then((ret) => {
return res.status(200).send(ret);
})
.catch((err) => {
return res.status(500).send(err);
});
};
exports.getId = async (req, res) => {
await noticiaSchema.find({ _id: req.params.id })
.then((ret) => {
return res.status(200).send(ret);
})
.catch((err) => {
return res.status(500).send(err)
});
};
exports.post = async (req, res) => {
const User = req.body;
console.log(User);
};
exports.delete = async (req, res) => {
await noticiaSchema.deleteOne({ _id: req.params.id })
.then((ret) => {
return res.status(200).send(ret);
})
.catch((err) => {
return res.status(500).send(err)
})
};
exports.put = async (req, res) => {
const obj = req.body;
await noticiaSchema.update({ _id: req.params.id }, obj)
.then((ret) => {
return res.status(200).send(ret);
})
.catch((err) => {
return res.status(500).send(err)
});
};
Model:
'use strict';
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const noticiaSchema = new Schema({
img: { data: Buffer, contentType: String }
}, {
timestamps: true
});
module.exports = mongoose.model('noticiaSchema', noticiaSchema);
Routes:
'use strict';
var express = require('express');
var Image = require('../models/noticiasModel');
var ImageRouter = express.Router();
const controller = require('../controllers/noticiasController')
ImageRouter.get('/', controller.get);
ImageRouter.get('/:id', controller.getId);
ImageRouter.post('/', controller.post);
ImageRouter.delete('/:id', controller.delete);
ImageRouter.put('/:id', controller.put);
module.exports = ImageRouter;
APP:
'use strict';
const express = require('express');
const cors = require('cors');
const dotenv = require('dotenv');
dotenv.config();
const app = express();
const path = require('path');
const multer = require('multer');
// Middleware
app.use(express.json());
app.use(cors());
// Database
require('./configs/mongodbConnection');
// Load Models
const menuModel = require('./models/menuModel');
const noticiaModel = require('./models/noticiasModel');
// Load Routes
const apiVersion = '/api/v1';
const index = require('./routes/indexRoute');
const menuRoute = require('./routes/menuRoute');
const noticiaRoute = require('./routes/noticiasRoute');
app.use(apiVersion + '/', index);
app.use(apiVersion + '/menu', menuRoute);
app.use(apiVersion + '/uploads', express.static('uploads'));
app.use(apiVersion + '/image', noticiaRoute);
// app.use(apiVersion + '/image', ImageRouter);
module.exports = app;
Onde estou errando, e o que devo fazer para gravar uma imagem no banco de dados mongoDB, quando envio uma imagem pelo método post, ele me retorna vazio { }, e no meu console da minha view ele me retorna isso:
1. File {name: "download.png", lastModified: 1581429829167, lastModifiedDate: Tue Feb 11 2020 11:03:49 GMT-0300 (Horário Padrão de Brasília), webkitRelativePath: "", size: 4974, …}
1. name: "download.png"
2. lastModified: 1581429829167
3. lastModifiedDate: Tue Feb 11 2020 11:03:49 GMT-0300 (Horário Padrão de Brasília) {}
4. webkitRelativePath: ""
5. size: 4974
6. type: "image/png"
Desde já eu agradeço!