Reputation: 331
Im trying to acess my route "posts.js", but when i start the server and connect on localhost:5000/posts. This error is showed "Cannot GET/posts"
code: server/routes/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;
code: server/models/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;
code: server/controller/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');
};
And in terminal show this when i start the server
[nodemon] starting `node index.js`
(node:12344) ExperimentalWarning: The ESM module loader is experimental.
Server running on PORT 5000:
Upvotes: 4
Views: 905
Reputation: 2923
You need to change router.get('/', getPost);
to router.get('/posts', getPost);
because now it responds on '/', but you want it to respond on '/posts'
Upvotes: 3
Reputation: 5476
You need to define a route for /posts
.
In your posts.js file, add 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;
Upvotes: 1