Я собираюсь разработать компонент, который извлекает данные из моей базы данных с помощью стека mern. Я получил эту ошибку с бессонницей, и я несколько раз менял код. ошибка:
Ошибка типа: Search.find не является функцией в C: \ Users \ yasmin \ search engine \ search - Copy \ backend \ server. js: 28: 8 на уровне .handle [as handle_request] (C: \ Users \ yasmin \ search engine \ search - Копировать \ backend \ node_modules \ express \ lib \ router \ layer. js: 95: 5) на следующем (C: \ Users \ yasmin \ search engine \ search - Копировать \ backend \ node_modules \ express \ lib \ router \ route. js: 137: 13) в Route.dispatch (C: \ Users \ yasmin \ search engine \ search - Скопируйте \ backend \ node_modules \ express \ lib \ router \ route. js: 112: 3) в Layer.handle [как handle_request] (C: \ Users \ yasmin \ search engine \ search - Copy \ backend \ node_modules \ express \ lib \ router \ layer. js: 95: 5) в C: \ Users \ yasmin \ search engine \ search - Копировать \ backend \ node_modules \ express \ lib \ router \ index. js : 281: 22 в Function.process_params (C: \ Users \ yasmin \ search engine \ search - Копировать \ backend \ node_modules \ express \ lib \ router \ index. js: 335: 12) в следующее (C: \ Users \ yasmin \ search engine \ search - Copy \ backend \ node_modules \ express \ lib \ router \ index. js: 275: 10) в jsonParser (C: \ Users \ yasmin \ search engine \ search - Копировать \ backend \ node_modules \ body-parser \ lib \ types \ json. js: 119: 7) в Layer.handle [как handle_request] (C: \ Users \ yasmin \ search engine \ search - Copy \ backend \ node_modules \ express \ lib \ router \ layer. js: 95: 5) в trim_prefix (C: \ Users \ yasmin \ search engine \ search - Копировать \ backend \ node_modules \ express \ lib \ router \ index. js: 317: 13) в C: \ Users \ yasmin \ search engine \ search - Copy \ backend \ node_modules \ express \ lib \ router \ index. js: 284: 7 в Function.process_params (C: \ Users \ yasmin \ search engine \ search - Скопируйте \ backend \ node_modules \ express \ lib \ router \ index. js: 335: 12) в следующем (C: \ Users \ yasmin \ search engine \ search - Copy \ backend \ node_modules \ express \ lib \ router \ index. js: 275: 10) в jsonParser (C: \ Users \ yasmin \ search engine \ search - Copy \ backend \ node_modules \ body-parser \ lib \ types \ json. js: 119: 7) в Layer.handle [как handle_request] (C: \ Users \ y asmin \ search engine \ search - Копировать \ backend \ node_modules \ express \ lib \ router \ layer. js: 95: 5)
мой код содержит:
поиск. модель. js:
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
let Search = new Schema(
{
imagePath: { type: String, required: true },
title: { type: String, required: true },
description: { type: String, required: true },
},
{ collection: "search" }
);
module.export = mongoose.model("Search", Search);
Мой сервер. js:
const express = require("express");
const cors = require("cors");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const router = express.Router();
var Schema = mongoose.Schema;
require("dotenv").config();
const app = express();
const port = process.env.PORT || 5000;
let Search = require("./models/search.model");
app.use(cors());
app.use(express.json());
app.use(bodyParser.json());
const uri = process.env.ATLAS_URI;
mongoose.connect(uri, {
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
});
const connection = mongoose.connection;
connection.once("open", () => {
console.log("MongoDB database connection established successfully");
});
app.post("/search", (req, res) => {
Search.find({}, function (err, search) {
if (err) {
res.status(400).json("Error: " + err);
} else {
res.json(search);
}
});
});
app.listen(port, () => {
console.log(`server is running on port: ${port}`);
});
и, поскольку я сомневаюсь, что отсутствует зависимость, я отправляю свой пакет. json:
{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "server.js",
"scripts": {
"start": "node server.js",
"server": "nodemon server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"body-parser": "^1.19.0",
"concurrently": "^5.1.0",
"cors": "^2.8.5",
"dotenv": "^8.2.0",
"express": "^4.17.1",
"mongoose": "^5.9.6"
}
}
Я хочу добавить, что мой сервер подключен к базе данных MongoDB, и я создал коллекцию с именем search вручную, из которой можно получать данные. когда я открываю свой клиент MongoDB и использую метод db.collection.find (), он работает отлично.