【发布时间】:2021-06-13 08:09:59
【问题描述】:
我正在尝试发布图像和其他 3 个字段以存储在我的 mongoDB 地图集中,以下是我的 ROUTES 文件中的代码
const express = require('express');
const router = express.Router();
const jwt = require('jsonwebtoken');
const keys = require('../config/key');
const passport = require('passport');
const mongoose = require('mongoose');
const { ensureAuth, ensureAdmin } = require('../middleware/auth');
var multer = require('multer');
var storage = multer.memoryStorage();
var upload = multer({ storage: storage });
// @route POST /novels
// @desc Create novel
// @access Private
router.post(
'/',
upload.single('image'),
(req, res) => {
const newNovel = new Novel({
title: req.body.title,
author: req.body.author,
synopsis: req.body.synopsis,
});
newNovel.img.data = req.file.image.buffer;
newNovel.img.contentType = 'image/jpg';
console.log('boidy:', req.body);
newNovel.save().then((novel) => res.json(novel));
}
);
以下是我的 SCHEMA
const mongoose = require('mongoose');
const chapter = require('./Chapter');
const NovelSchema = mongoose.Schema({
title: {
type: String,
required: true,
},
author: {
type: String, //mongoose.Schema.Types.ObjectId, // author object,
required: true,
},
synopsis: {
type: String,
required: true,
},
comments: [
{
body: String,
date: Date,
},
],
date: {
type: Date,
default: Date.now,
},
access: {
// true for public || false for private
type: Boolean,
default: false,
},
noOfChapters: {
type: Number,
},
***img: { data: Buffer, contentType: String }***,
Chapters: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Chapter',
},
],
genre: [String],
meta: {
views: {
type: Number,
},
likes: {
type: Number,
},
},
});
module.exports = Novel = mongoose.model('Novel', NovelSchema);
目前我只在我的数据库中添加 TITLE、AUTHOR 和 SYNOPSIS,之前我在没有图像的情况下尝试过,效果很好
【问题讨论】:
标签: node.js mongodb express mongoose postman