SyntaxError: неожиданный конец ввода в API выборки - PullRequest
0 голосов
/ 01 апреля 2020

Я сталкиваюсь с новой проблемой, которая была задана ранее в этой ссылке . Но это не имеет отношения к моей проблеме.

Я реализовал очень простой API с использованием nodejs, express-framework и mongoose. Проблема в получении API. Я хочу предоставить какой-то идентификатор и опубликовать его на сервере. На стороне сервера я перенаправляю его на правильную базу URL-адресов на ID, который ввел пользователь. Всякий раз, когда я проверяю эту часть, эта ошибка возникает на внешней стороне и указывает на строку return response.json().

SyntaxError: Неожиданный конец ввода

Здесь мой код:

Front-End:

function submitCode(){
    var nationalCode = document.getElementById('nationalCode').value
    var data = {
        nationalCode: nationalCode,
        creationDate: new Date().toLocaleDateString()
    }

    fetch('/submit', {
        method: 'POST',
        redirect:'manual',
        headers: {
            'Content-Type': 'application/json',
            'Accept': 'application/json'
        },
        body: JSON.stringify(data)
    },
    ).then(response => {
        return response.json()
    }).then(jsonData => {
        console.log('success:', jsonData)
        history.pushState(null, null, "/lashkhor")
    }).catch(e => {
        console.log('error:', e)
        return e
    })
}

Back-End:

app.post('/submit', (req, res) => {
    var nationalCode = req.body.nationalCode
    var creationDate = req.body.creationDate

    query = {'nationalCode': nationalCode}
    nationalCodeModel.find(query, (err, success) => {
        if (err) {
            console.log('error:', err)
        }
        else if (success.length == 0){
            nationalCodeModel.create({
                nationalCode: nationalCode,
                creationDate: creationDate
            })
            console.log('salam khoshgele daei!')
            res.redirect('/khoshgeledaei')
        }
        else if (success.length > 0) {
            console.log('lashkhor detected')
            res.redirect('/lashkhor')
        }
    })

})

app.get('/lashkhor', (req, res) => {
    console.log('here')
    res.send('salam')
})

Я могу ' Не могу найти подсказки, чтобы решить это. Буду благодарен, если кто-нибудь сможет мне помочь.

PS: Весь код доступен в этом хранилище

Спасибо!

1 Ответ

1 голос
/ 02 апреля 2020

Вы пытаетесь разобрать текст в json. Вы можете использовать res.json() вместо res.send() из своего бэкэнда.

...