Соединение разрывается, когда я делаю запрос POST? - PullRequest
0 голосов
/ 06 марта 2019

Мне интересно, может ли кто-нибудь помочь мне здесь. В настоящее время я прохожу курс Udemy, чтобы узнать, как подключить базу данных к моему серверу. Я использовал слово за словом код учителя, часто проверяя, нет ли в моем коде каких-либо мелких ошибок. До сих пор у меня не было проблем с кодом в моем файле server.js. Порт работает без сбоев. Однако, когда я запускаю запрос POST от Почтальона, я получаю

Необработанный отказ. Ошибка: соединение неожиданно прервано

Через Почтальона я точно следую тому, что делал учитель. Запрос POST содержит адрес электронной почты, пароль, имя и localhost: 3000 / путь регистрации в порядке. Вот к чему подключен мой сервер. Мне интересно, что происходит, так как мой код работает гладко, пока я не сделаю запрос POST. Также отмечая, что я получаю ответ 200 OK на Почтальоне, но на сервере я получаю это сообщение об ошибке необработанного отказа.

enter image description here

Да, этот консольный журнал является преднамеренным, я в точности повторяю то, что он делает в видео, поэтому в следующем видео код обязательно изменится со временем.

const express = require('express');
const bodyParser = require('body-parser');
const bcrypt = require ('bcrypt-nodejs');
const cors = require('cors');
const knex = require('knex');
const pg = require('pg');

const db = knex({
  client: 'pg',
  connection: {
    host : '127.0.0.1',
    user : 'postgres',
    port: '3000',
    password : '',
    database : 'smart-brain'
  }
});




const app = express();

const database = {
  users: [
    {
      id: '123',
      name: 'Jess',
      email: 'jess@gmail.com',
      password: 'cookies',
      entries: 0,
      joined: new Date()
    },
     {
      id: '124',
      name: 'Sally',
      email: 'sally@gmail.com',
      password: 'bananas',
      entries: 0,
      joined: new Date()
    }
  ]
}


app.use(bodyParser.json());
//body parser is basically json.parse. we want to always parse json so our code is readable in string form. POST > Raw > JSON
app.use(cors())

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(database.users[0])
  } else {
    res.status(400).json('error logging in')
  }
})

app.post('/register', (req, res) => {
  const { email, name, password } = req.body;
  db('users').insert({
    email: email,
    name: name,
    joined: new Date() 
  }).then(() => console.log())
  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(400).json('not found...')
  }
})

//now we are creating route for entries count. everytime they submit image, they will get a count for it
app.put('/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');
})

1 Ответ

0 голосов
/ 06 марта 2019

попробуйте добавить функцию catch после блока.

app.post('/register', (req, res) => {
const { email, name, password } = req.body;
  db('users').insert({
    email: email,
    name: name,
    joined: new Date() 
  }).then(() => {
    res.json(database.users[database.users.length-1])   
  }).catch((err)=>{console.log(err)})

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