Я пытаюсь получить доступ к моему маршруту «posts.js», но когда я запускаю сервер и подключаюсь к локальному хосту: 5000/posts. Эта ошибка отображается "Не удается получить/сообщения"
код: сервер/маршруты/posts.js
import express from 'express';
import { getPost, createPost } from '../controller/posts.js'
const router = express.Router();
router.get('/', getPost);
router.post('/', createPost);
export default router;
код: сервер/модели/postMessages.js
import mongoose from 'mongoose';
const postSchema = mongoose.Schema({
title: String,
message: String,
creator: String,
tags: [String],
selectedFile: String,
likeCount: {
type: Number,
default: 0
},
createdAt: {
type: Date,
default: new Date()
},
});
const PostMessage = mongoose.model('PostMessage', postSchema);
export default PostMessage;
код: сервер/контроллер/posts.js
import PostMessage from '../models/postMessages.js'
export const getPost = async (req, res) => {
try {
const postMessages = await PostMessage.find();
res.status(200).json(postMessages);
} catch(error) {
res.status(404).json({ message: error.message });
}
};
export const createPost = (req, res) => {
res.send('Posts creation');
};
И в терминале показать это, когда я запускаю сервер
[nodemon] starting `node index.js`
(node:12344) ExperimentalWarning: The ESM module loader is experimental.
Server running on PORT 5000:
Вам нужно определить маршрут для /posts
.
В файле posts.js добавьте router.get('/posts', getPost);
import express from 'express';
import { getPost, createPost } from '../controller/posts.js'
const router = express.Router();
router.get('/', getPost);
router.get('/posts', getPost);
router.post('/', createPost);
export default router;
Вам нужно изменить router.get('/', getPost);
на router.get('/posts', getPost);
, потому что теперь он отвечает на «/», но вы хотите, чтобы он отвечал на «/posts».