почему 500 - внутренняя ошибка сервера?

const form = document.getElementById('vote-form')
form.addEventListener('submit',e => {
  let choice = document.querySelector('input[name=os]:checked').value;
  let data = {os: choice};

  fetch("http://localhost:3000/poll",{ // *** getting error here
    method:'post',
    body:JSON.stringify(data),
    headers: new Headers({
      'Content-Type':'application/json'
    })
  }).then(res => res.json()).then((data) => {console.log(data)}).catch(err => console.log(err))    
e.preventDefault();
});

Вот внутренний код: это мой основной файл маршрутизатора, в котором размещены все связанные маршруты.

const express = require('express')
const router = express.Router()
const Pusher = require('pusher')

let pusher=new Pusher({
  appId:'*******',
  key:'*****',
  secret:'******',
  cluster:'*****',
  encrypted:true
});

router.get('/',(req,res) => { //it actually means /poll (as mentioned in app.js)
  res.send('polling starts');
})

router.post('/',(req,res)=>{
pusher.trigger('os-poll','os-vote',{
  points: 1,
  os: req.body.os
});
res.json({success:true,message:"thanks for voting"})
});

module.exports=router

Я получаю внутреннюю ошибку сервера - код состояния 500. Почему так?? В чем может быть возможная причина?


person Community    schedule 05.03.2018    source источник
comment
Пожалуйста, покажите свой внутренний код.   -  person Kevin    schedule 06.03.2018
comment
@Kevin добавил то же самое.   -  person    schedule 06.03.2018
comment
Я видел, что в вашем коде перед module.exports стоит символ 1.   -  person Kevin    schedule 06.03.2018
comment
@Kevin Я столкнулся с проблемами в этом коде обещания. Полагаю, Fetch ничего не возвращает. Или он не работает так, как должен.   -  person    schedule 06.03.2018
comment
Если вы получаете ошибку 500, это должно быть проблема в вашем внутреннем коде. Раньше я не пользовался библиотекой pusher. Я предлагаю вам удалить pusher.trigger из вашего внутреннего кода и просто отправить текст, чтобы увидеть, работает ли он. Если это так, вам следует взглянуть на документ толкателя и исправить это.   -  person Kevin    schedule 06.03.2018
comment
Дай мне попробовать. Это отличная идея.   -  person    schedule 06.03.2018
comment
Попробуйте добавить точки останова в свой app.get / app.post и посмотрите, срабатывают ли они вообще.   -  person Jake T.    schedule 06.03.2018
comment
@Kevin да, это сработало, но когда я снова включил этот метод триггера, я получил сообщение об ошибке SyntaxError: Unexpected token < in JSON at position 0   -  person    schedule 06.03.2018
comment
@JakeT. основная проблема заключается в методе pusher.trigger, я не могу понять этот SyntaxError: Unexpected token < in JSON at position 0   -  person    schedule 06.03.2018
comment
Извините. Библиотеку пушеров не знаю. Пожалуйста, реорганизуйте свой пост и устраните основную проблему. Так что кто-нибудь, кто знаком с pusher, ответит на него.   -  person Kevin    schedule 06.03.2018
comment
@Kevin спасибо за усилия, приятель   -  person    schedule 06.03.2018
comment
Если вы обновили свой код, покажите обновление. Отправленного вами символа не должно быть в показанном вами коде.   -  person Jake T.    schedule 06.03.2018
comment
Я думаю, что варианты, которые вы передаете, недействительны. Попробуйте изменить свой {points:1, os: req.body.os} на {message:"test message"}   -  person Jake T.    schedule 06.03.2018
comment
И если это так, вам нужно найти правильный синтаксис для передачи нужных атрибутов. Вероятные данные? {message:"test message", data: { points:1, os: req.body.os}}   -  person Jake T.    schedule 06.03.2018
comment
нам нужно отправить данные JSON, поэтому я привязан к строковой обработке, я не могу отправить объект, как было предложено.   -  person    schedule 06.03.2018


Ответы (1)


Мне просто пришлось использовать пакет body-parser для того же.

person Community    schedule 06.03.2018