Я следую этому уроку здесь: https://www.youtube.com/watch?v=a-JKj7m2LIo
Я застрял около 14-минутной отметки, получая следующее сообщение об ошибке в терминале:
(node:6248) UnhandledPromiseRejectionWarning: RangeError [ERR_HTTP_INVALID_STATUS_CODE]: Invalid status code: undefined
[0] at ServerResponse.writeHead (_http_server.js:237:11)
[0] at ServerResponse._implicitHeader (_http_server.js:228:8)
[0] at write_ (_http_outgoing.js:616:9)
[0] at ServerResponse.end (_http_outgoing.js:733:5)
[0] at ServerResponse.send (D:\htdocs\mern\react-slack-clone\node_modules\express\lib\response.js:221:10)
[0] at ServerResponse.sendStatus (D:\htdocs\mern\react-slack-clone\node_modules\express\lib\response.js:359:15)
[0] at D:\htdocs\mern\react-slack-clone\server.js:31:13
[0] at processTicksAndRejections (internal/process/task_queues.js:93:5)
[0] (node:6248) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise
which was not handled with .catch(). (rejection id: 1)
[0] (node:6248) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero
exit code
Все еще учусь использовать React и Node, но я думаю, что ошибка происходит на моем сервере. js файл.
Мой сервер. js код выглядит следующим образом:
const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const Chatkit = require('pusher-chatkit-server')
const app = express()
const chatkit = new Chatkit.default({
instanceLocator: 'fhdsakfjsdalkfjdsalfjsdlajflsad',
key:
'ruewioqruewfhdsakljfdsaljfsdlakjds483294'
})
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(cors())
app.post('/users', (req, res) => {
const { username } = req.body
chatkit
.createUser({
name: username,
id: username
})
.then(() => res.sendStatus(201))
.catch(error => {
console.log('Error:', error) // updated
/*if(error.error_type === 'services/chatkit/user_already_exists') {
res.sendStatus(200)
} else {
res.sendStatus(error.statusCode).json(error)
}*/
})
})
const PORT = 3001
app.listen(PORT, err => {
if (err) {
console.error(err)
} else {
console.log(`Running on port ${PORT}`)
}
})
Обычно, когда я отправляю имя на вкладке сети консоли, я должен видеть сообщение, но я не являюсь , Я получаю сообщение об ошибке, но не знаю, как его расшифровать.
Редактировать
Добавил console.log ('Ошибка:', ошибка) в приведенный выше код и получил следующее сообщение об ошибке в терминале:
Error: ErrorResponse {
[0] status: 404,
[0] headers: {
[0] 'access-control-expose-headers': 'X-Envoy-Upstream-Service-Time,
Server, Access-Control-Expose-Headers, Access-Control-Max-Age, Date',
[0] 'access-control-max-age': '86400',
[0] 'content-type': 'application/json',
[0] date: 'Tue, 17 Mar 2020 18:07:17 GMT',
[0] server: 'istio-envoy',
[0] 'x-envoy-upstream-service-time': '10',
[0] 'content-length': '209',
[0] connection: 'close'
[0] },
[0] error: 'not_found',
[0] error_description: 'Not found',
[0] error_uri: 'https://docs.pusher.com/errors/not_found'
[0] }
Я не понимаю, что означает это сообщение об ошибке. Я проверяю URL-адрес, указанный в error_uri, и на этой странице выдается сообщение: «Сервер не может найти запрошенный ресурс. Убедитесь, что имя запрашиваемого ресурса указано правильно». Я не совсем уверен, что это значит.
* ОБНОВЛЕНИЕ 4/8/2020 *
Я внес следующие изменения в app.post, пытаясь создать другой ошибка терминала, как указано ниже:
app.post('/users', (req, res) => {
const { username } = req.body
chatkit
.createUser({
name: username,
id: username
})
.then(() => res.sendStatus(201))
.catch(error => {
//console.log('Error:', error)
if(error.error_type === 'services/chatkit/user_already_exists') {
res.sendStatus(200)
} else {
//res.sendStatus(error.statusCode).json(error)
res.sendStatus(500)
console.log(JSON.stringify(error))
}
})
})
Я получил следующий ответ в терминале:
{"status":404,"headers":{"access-control-expose-headers":"Date,
X-Envoy-Upstream-Service-Time, Server, Access-Control-Expose-Headers,
Access-Control-Max-Age","access-control-max-age":"86400",
"content-type":"application/json","date":"Thu, 09 Apr 2020 02:34:22
GMT","server":"istio-envoy",
"x-envoy-upstream-service-time":"11",
"content-length":"209","connection":"close"},
"error":"not_found","error_description":
"Not found","error_uri":"https://docs.pusher.com/errors/not_found"}
Я не знаю, что это означает. Цените ваши мысли.