Mongoose TypeError:TypeError:无法使用“in”运算符在未定义中搜索“pluralization”
Posted
技术标签:
【中文标题】Mongoose TypeError:TypeError:无法使用“in”运算符在未定义中搜索“pluralization”【英文标题】:Mongoose TypeError: TypeError: Cannot use 'in' operator to search for 'pluralization' in undefined 【发布时间】: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);
这是我在尝试启动服务器时收到的错误:
我真的不知道还能说什么。我已经尝试过针对类似问题看到的解决方案(据我所知),但他们的问题显然与我的不太一样。如果还有其他任何人需要知道来帮助我解决这个问题,我会提供任何必要的。提前致谢。
【问题讨论】:
【参考方案1】:文件:image_model.js
const imageData = mongoose.model('image', 'imageSchema')
// imageSchema is not a string
改为:
const imageData = mongoose.model('image', imageSchema)
【讨论】:
以上是关于Mongoose TypeError:TypeError:无法使用“in”运算符在未定义中搜索“pluralization”的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:将循环结构转换为 mongodb/mongoose 的 JSON
NodeJS Mongoose record.save TypeError
获取 TypeError:path.split 不是 Mongoose 中的函数
Mocha API 测试:获取“TypeError:app.address 不是函数”
Mongoose TypeError:TypeError:无法使用“in”运算符在未定义中搜索“pluralization”