【问题标题】:Mongoose TypeError: TypeError: Cannot use 'in' operator to search for 'pluralization' in undefinedMongoose TypeError:TypeError:无法使用“in”运算符在未定义中搜索“pluralization”
【发布时间】:2021-11-03 21:45:32
【问题描述】:

不太清楚这里发生了什么。我看到其他人之前遇到过这个错误,但我想我只是理解不够,无法将他们做错的事情与我做错的事情进行比较。

这只是一个学习 MERN 堆栈的简单项目。这里的目标相对简单:将 PDF 文件上传到 mongoDB 数据库,检索该 PDF 文件,并将其显示到预览窗口。可能是 iframe,或者更简单的东西,这取决于我可用的选项。目前,我的主要问题是后端。

所以,这是我的代码:

index.js(当然省略了用户名和密码):

import express from 'express';
import mongoose from 'mongoose';
import bodyParser from 'body-parser';
import cors from 'cors';
import { router } from './routes/image-route.js';

const app = express();
const port = 5000;

app.use(bodyParser.json({limit: "20mb", extended: true}));
app.use(bodyParser.urlencoded({limit: "20mb", extended: true}));

app.use('./routes/image-route.js', router)

app.use(cors());

const CONNECTION_URL = 'mongodb+srv://<username>:<password>@cluster0.xxpzv.mongodb.net/myFirstDatabase?retryWrites=true&w=majority';

async function main() {
    await mongoose.connect(CONNECTION_URL).then(() => console.log("SERVER CONNECTION ESTABLISHED"));
}

main().catch(err => console.log(err));

app.listen(port, () => console.log(`listening at port ${port}`));

image_model.js:

import mongoose from 'mongoose';

const imageSchema = mongoose.Schema({
    name: String,
    img:
    {
        data: Buffer,
        contentType: String
    }
});

const imageData = mongoose.model('image', 'imageSchema')

export { imageData };

image-route.js:

import express from 'express';
import { getImage, postImage } from '../controllers/image_controller.js';

const router = express.Router();

router.get('/', getImage);
router.post('/', postImage);

export { router };

image_controller.js:

import { imageData } from '../models/image_model.js';

export const getImage = async (req, res) => {
    try {
        const allImages = await imageData.find();
        req.status(200).json(allImages);
        console.log('Successfully submitted');
    } catch (err) {
        res.status(404).json({message: error.message});
    }
}

export const postImage = async (req, res) => {
    const image = req.body;
    const newImage = new imageData(image);

    try {
        await newImage.save();
        res.status(201).json(newImage);
    } catch (error) {
        res.status(409).json({message: error.message});
    }
}

这是我在尝试启动服务器时收到的错误:

我真的不知道还能说什么。我已经尝试过针对类似问题看到的解决方案(据我所知),但他们的问题显然与我的不太一样。如果还有其他任何人需要知道来帮助我解决这个问题,我会提供任何必要的。提前致谢。

【问题讨论】:

    标签: database mongodb mongoose schema typeerror


    【解决方案1】:

    文件:image_model.js

    const imageData = mongoose.model('image', 'imageSchema')
     // imageSchema is not a string
    

    改为:

    const imageData = mongoose.model('image', imageSchema)
    

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 1970-01-01
      • 2016-11-20
      • 2015-10-12
      • 1970-01-01
      • 2013-06-10
      • 2022-01-18
      • 2020-04-08
      • 1970-01-01
      相关资源
      最近更新 更多