kalombo grace
kalombo grace

Reputation: 57

postman when testing GET it returns 200 but with an empty body

When I m trying to test my GET API using postman it returns 200 but with an empty body, The data I'm expecting to get do not show up.

Find my server.js file and the screenshot of POSTMAN result

app.get('/api/articles/:name', async (req, res) => {

    try {
        const articleName = req.params.name;

        const client = await MongoClient.connect('mongodb://localhost:27017', { useNewUrlParser: true });
        const db = client.db('my-blog');

        const articleInfo = await db.collection('articles').findOne({ name: articleName })
        res.status(200).json(articleInfo)

        client.close()
    }
    catch (error) {
        res.status(500).json({ message: 'error connecting to db', error })
    }

})

enter image description here

Upvotes: 1

Views: 4476

Answers (1)

Prakash Bhosale
Prakash Bhosale

Reputation: 247

here i have updated your code as below and please move your server.js outside of /src folder. its working now.

const express = require('express')
const bodyParser = require('body-parser')
const {MongoClient} = require("mongodb");
const url = 'mongodb://127.0.0.1:27017';
const app = express();
app.use(bodyParser.json());
app.get('/api/articles/:name', async (req, res) => {
    try {
        const articleName = req.params.name;
        MongoClient.connect(url, async (err, db) => {
            const client = db.db('article');
            const articleInfo = await client.collection('articles').findOne({title: articleName})
            res.send(articleInfo)
        });

    } catch (error) {
        res.status(500).json({ message: 'Error connecting to db', error });
    }

});
app.listen(8000, () => console.log('Listening on port 8000'));

Upvotes: 1

Related Questions