localhost не выводит JSON для маршрутизатора и контроллера, которые я использовал

Я только начал изучать NodeJS, и я застрял в этом. Я пытаюсь обработать запрос. localhost продолжает загружаться или выдает ошибку

не может получить/

Код JSON должен отображаться на моем сайте localhost. Какие изменения в routes или controllers мне следует внести?

Вот файл app.js, который вызывает маршрутизатор для обработки запроса.

app.js

const express=require("express");
const app=express();

const Postroutes=require('./routes/post');

app.use("/" , Postroutes);

const port=8000;
app.listen(port, ()=>{
    console.log(`a node js api is listening on port ${port}`);
});

маршруты перенаправят запрос контроллеру.

маршруты/post.js


const express= require("express")
const PostController=require('../controllers/post')

const router=express.Router()

router.get("/",PostController.getPosts);

module.exports= router;

Контроллер ответит JSON.

контроллеры/post.js

exports.getPosts= (req,res)=>{
    res.json=({
        posts:
            [
                {title:"First Post"},
                {title:"Second Post"}

            ]
    });
};

person aswathsrimari    schedule 21.12.2019    source источник


Ответы (3)


Это можно использовать внутри вашего controllers/post.js

exports.getPosts= (req,res)=>{
    const json = {
        posts:
            [
                {title:"First Post"},
                {title:"Second Post"}

            ]
    };
    res.send(json);
};

Или используйте res.json({ ... }) согласно ответу @lolmc.

Подробнее об ответе для другого формата -> Express API Ref

person Abhishek    schedule 21.12.2019
comment
Я получаю эту ошибку: = throw new TypeError('Router.use() требует промежуточной функции, но получил ' + gettype(fn)) Что это значит? @Сандип Кумар - person aswathsrimari; 21.12.2019

In controllers/post.js

Попробуйте res.json({...}); вместо res.json=({...});

person lolmc    schedule 21.12.2019

Как упомянули Abhishek и lolmc, res.json({...}) должно помочь. res — это объект с методами. Эти методы отвечают на HTTP-запрос.

res — это сокращение от ответа. например res.json({ message: 'This is a test message.' }) для ответа на HTTP-запрос с помощью json.

См. эту публикацию в stackoverflow, где Дэйв Уорд объясняет req и res, и прочитайте документы для res и документы для req, чтобы узнать больше.

person Oliver Karstoft    schedule 21.12.2019