SyntaxError: JSON .parse: неожиданный конец данных в строке 1 столбца 1 данных JSON. Почему bodyParser не работает? - PullRequest
0 голосов
/ 02 февраля 2020

Это мой индекс. js файл, и я думаю, что я установил маршруты после установки bodyParser, но все еще получаю синтаксическую ошибку.

const express = require('express'); //Framework to build server side application
const morgan = require('morgan'); //Logging the nodejs requests
const bodyParser = require('body-parser'); //To get the JSON data
const urls = require('./db/urls');

const app = express();

app.use(morgan('tiny'));
app.use(bodyParser.json());
app.use(express.static('./public')); //If a request comes with '/' check if file is in there if it is then serve it up.
// app.get('/', (req, res) => {
//     res.send('Hello, World !!');
// });
app.post('/api/shorty', async (req, res) => {
    console.log(req.body);
    try {
        const url = await urls.create(req.body); //Passing the body data which is JSON to create function
        res.json(url);
    } catch (error) {
        res.status(500);
        res.json(error)
    }
});
const port = process.env.PORT || 5000;

app.listen(port, () => {
    console.log(`listening on port ${port}`);
});

Это файл URL. js, я я не понимаю, где я испортил синтаксис. JSON ошибка в этом файле.

const db = require('./connection');
const Joi = require('joi');//Schema validation

const urls = db.get('urls');
const schema = Joi.object().keys({
    name : Joi.string().token().min(1).max(100).required(),
    url : Joi.string().uri({
        scheme: [
            /https?/ //get http 's' is optional
        ]
    }).required()
}).with('name','url');

//almostShorty = { 
//     name = ,
//     url =
// }

function create(almostShorty){
   const result = Joi.validate(almostShorty, schema);
   if(result.error === null){
       return urls.insert(almostShorty);//Inserting the object in the Data Base.
   }else{
       return Promise.reject(result.error);
   }
};

module.exports = {create};//Exporting the create function. 
...