I am new to this world of programming, I am currently with my first project, but I have an error, please help, also if possible a brief explanation of why the problem is and how to avoid it in future projects. (I using NodeJs and Mongoose)
ERROR:
TypeError: newImg.save is not a function
CODE:
const path = require('path');
const { randomNumber } = require('../helpers/libs.js');
const fs = require('fs-extra');
const Imagen = function(){
};
const ctrl = {};
const { Image, Comment } = require('../models/');
ctrl.index = async (req, res) => {
let viewModel = { image: {}, comments: [] };
const image = await Image.findOne({filename: { $regex: req.params.image_id }});
if (image) {
image.views = image.views + 1;
viewModel.image = image;
image.save();
const comments = await Comment.find({image_id: image._id})
.sort({'timestamp': 1});
viewModel.comments = comments;
viewModel = await sidebar(viewModel);
res.render('image', viewModel);
} else {
res.redirect('/');
}
};
ctrl.create = async (req, res) => {
const imgUrl = randomNumber();
console.log(imgUrl);
const imageTempPath = req.file.path;
const ext = path.extname(req.file.originalname).toLowerCase();
const targetPath = path.resolve(`src/public/upload/${ imgUrl }${ ext }`);
if (ext === ".png" || ext === ".jpg" || ext === ".jpeg" || ext === ".gif") {
await fs.rename(imageTempPath, targetPath);
const newImg = new Imagen({
title: req.body.title,
description: req.body.description,
filename: imgUrl + ext,
});
const imageSave = await newImg.save();
}
res.send('recibido');
};
this is Schema.
const mongoose = require('mongoose');
const { Schema, model } = mongoose;
const path = require('path');
const ImageSchema = new Schema({
title: { type: String },
description: { type: String },
filename: { type: String },
views: { type: Number, default: 0 },
likes: { type: Number, default: 0 },
timestamp: { type: Date, default: Date.now }
});
ImageSchema.virtual('uniqueId')
.get(function () {
return this.filename.replace(path.extname(this.filename), '');
});
module.exports = mongoose.model('Image', ImageSchema);
PLEASE HELP