Mikael
Mikael

Reputation: 331

Cannot GET /posts

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

Answers (2)

IvanD
IvanD

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

Harshana
Harshana

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

Related Questions