Express неожиданный токен сервера при попытке проверить соединение с сервером - PullRequest
0 голосов
/ 02 апреля 2020

Я настраиваю небольшое приложение для распознавания лиц с Clarifi API, я использую сервер express и тестирую как go с Почтальоном. У меня есть четыре конечные точки:

  • Вход - это нормально работает
  • Регистрация - это тоже нормально работает
  • Профиль - это тоже нормально работает
  • Изображение - вот где я отклеиваюсь

Это код моего файлового сервера. js

const express = require('express');
const bodyParser = require('body-parser');

const app = express();

app.use(bodyParser.json());

const database = {
    users: [
        {
            id: '123',
            name: 'David',
            email: 'david@david.com',
            password: 'cookies',
            entries: 0,
            joined: new Date()

        },
        {
            id: '124',
            name: 'John',
            email: 'john@david.com',
            password: 'apples',
            entries: 0,
            joined: new Date()

        }
    ]
}
app.get('/', (req, res) => {
    res.send(database.users)
})

app.post('/signin', (req, res) => {
    if (req.body.email === database.users[0].email && 
        req.body.password === database.users[0].password){
            res.json('success')
        } else {
            res.status(400).json('error logging in');
        }
})

app.post('/register', (req, res) => {
    const { email, name, password } = req.body;
    database.users.push({
        id: '125',
            name: name,
            email: email,
            password: password,
            entries: 0,
            joined: new Date()
    })
    res.json(database.users[database.users.length-1])

})

app.get('/profile/:id', (req, res) => {
    const { id } = req.params;
    let found = false;
    database.users.forEach(user => {
        if (user.id === id) {
            found = true;
            return res.json(user);
        }
    })
    if (!found) {
        res.status(404).json('User not found');
    }
})

app.post('/image', (req, res) => {
    const {id} = req.body;
    let found = false;
    database.users.forEach(user => {
        if(user.id === id) {
            found = true;
            user.entries++
          return res.json(user.entries);
        }
    }) 
    if(!found){
        res.status(400).json('NOT FOUND'); 
    }
})  

app.listen(3000, ()=> {
    console.log('app is running on port 3000');
})

Все работает нормально, пока я не добавлю это часть,

app.post('/image', (req, res) => {
    const {id} = req.body;
    let found = false;
    database.users.forEach(user => {
        if(user.id === id) {
            found = true;
            user.entries++
          return res.json(user.entries);
        }
    }) 
    if(!found){
        res.status(400).json('NOT FOUND'); 
    }
}) 

Я знаю, что это почти такая же функция, как у профиля, и я в конечном итоге вытащу его и создам для использования везде, но главное здесь - заставить его работать в финале конечная точка создания записей для каждого случая, когда изображение загружается для каждого пользователя

Как я уже говорил, все работает в Postman вплоть до добавления этой части кода, плюс я использую код VS и ошибок нет в коде и там все проверено, я также запустил npm start в терминале и получил правильный ответ приложения, работающего на порту 3000, прежде чем я попробую почтальон.

Ниже приведена копия основного сообщения / ошибки от Почтальона

<code><!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <title>Error</title>
</head>

<body>
    <pre>SyntaxError: Unexpected token } in JSON at position 16<br> &nbsp; &nbsp;at JSON.parse (&lt;anonymous&gt;)<br> &nbsp; &nbsp;at parse (C:\Users\djaad\Desktop\smart-brain-api\node_modules\body-parser\lib\types\json.js:89:19)<br> &nbsp; &nbsp;at C:\Users\djaad\Desktop\smart-brain-api\node_modules\body-parser\lib\read.js:121:18<br> &nbsp; &nbsp;at invokeCallback (C:\Users\djaad\Desktop\smart-brain-api\node_modules\raw-body\index.js:224:16)<br> &nbsp; &nbsp;at done (C:\Users\djaad\Desktop\smart-brain-api\node_modules\raw-body\index.js:213:7)<br> &nbsp; &nbsp;at IncomingMessage.onEnd (C:\Users\djaad\Desktop\smart-brain-api\node_modules\raw-body\index.js:273:7)<br> &nbsp; &nbsp;at IncomingMessage.emit (events.js:317:22)<br> &nbsp; &nbsp;at endReadableNT (_stream_readable.js:1215:12)<br> &nbsp; &nbsp;at processTicksAndRejections (internal/process/task_queues.js:84:21)

Понятия не имею, что может быть причиной этого, пожалуйста вы можете помочь?

Спасибо,

Дэвид.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...