如何使用mongoose将不同类型的对象数组保存到数据库中?

aelbi1ox  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(338)

我正在使用 React , mongoose , node , express , multer . 我想在博客内容中添加任意数量的段落或图片。我完全迷路了,我不知道该如何定义模式并将它们保存到数据库中。而且,我使用 multer.any() 作为中间件。我不太确定是否 multer 将影响非图像数据
现在让我试着只上传一个图片和一个段落,我使用console.log检查结果。

  1. const BlogSchema = new mongoose.Schema({
  2. title: {
  3. type: String,
  4. },
  5. coverImage: {
  6. type: String,
  7. },
  8. blogImage: {
  9. type: String,
  10. },
  11. lastModified: {
  12. type: String,
  13. },
  14. category: {
  15. type: String,
  16. },
  17. blogContent: {
  18. type: Schema.Types.Mixed, // this is the content where I can insert images and paragraphs
  19. }
  20. })

路线

  1. const upload = multer({
  2. storage: multer.memoryStorage(),
  3. limits: {
  4. fileSize: 5 * 1024 * 1024,
  5. },
  6. });
  7. router.patch(/:id, upload.any(), (req, res, next) => {
  8. console.log(req.body.blogContent); // Output --> [object Object],[object, Object]
  9. console.log(req.files); // Output --> []
  10. })

server.js

  1. require("dotenv").config({path: "./config.env"});
  2. const express = require("express");
  3. const connectDB = require('./config/db');
  4. const app = express();
  5. // Connect DB
  6. connectDB();
  7. // express middleware
  8. app.use(express.json());
  9. app.use('/blog', require('./routes/blogPage'));
  10. app.use(express.urlencoded({ extended: false }));
  11. const PORT = process.env.PORT || 5000;
  12. const server = app.listen(PORT, () => console.log(`Server running on port ${PORT}`))
  13. // handle error
  14. process.on("unhandledRejection", (err, promise) => {
  15. console.log(`Logged Error: ${err}` )
  16. server.close(() => process.exit(1))
  17. })

我从中得到一个奇怪的输出 req.body.blogContent 并且没有从中获得任何输出 req.files 即使它应该在那里。我真的需要帮助!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题