Mothersprogrammer
@Mothersprogrammer

Почему возникает ошибка Unexpected end of JSON input?

Есть метод:
postJson(data){
            return fetch('/todo.json', {
                method: 'POST',
                body: JSON.stringify(data),
                headers: {
                    'Content-Type': 'application/json'
                }
            })
              .then(response => response.json())
              .then(function(response) {
                  console.info('fetch()', response);
                  return response;
              });
                
        },


вот как он вызывается:
this.postJson(this.todos)
              .then(()=>{
                console.log(this.todos)
              })

дальше по плану все данные должны уходить в node, и там записываться в json, решив убрать часть кода с изменением json, появилась ошибка, что файл не найден, по этому мне кажется что проблема может скрываться в коде node, вот он сам:
const express = require('express');
const fs = require("fs");
const app = express();

app.use('/', express.static('dist'));

app.post('/todo.json', (req, res) => {
    fs.watchFile('/todo.json', req, (err)=>{
        throw err
    })
    res.end();
});

const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Listen on port ${port}...`));


Вот текст ошибки Uncaught (in promise) SyntaxError: Unexpected end of JSON input
Подскажите пожалуйста, где я допустил ошибку в коде ?
  • Вопрос задан
  • 5670 просмотров
Пригласить эксперта
Ответы на вопрос 1
kocherman
@kocherman
Очевидно, сервер посылает пустой ответ браузеру, который ожидает получить ответ в формате json.

Замените строку
res.end();
на
res.end("{}");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы