#javascript #node.js #adonis.js
#javascript #node.js #adonis.js
Вопрос:
Когда пользователь создает сообщение в моем приложении RESTful, я хочу установить код статуса ответа равным 201.
Я следовал документации и создал start/hooks.js
следующее:
'use strict'
const { hooks } = require('@adonisjs/ignitor')
hooks.after.httpServer(() => {
const Response = use('Adonis/Src/Response')
Response.macro('sendStatus', (status) => {
this.status(status).send(status)
})
})
Теперь в моем PostController.js у меня есть это:
async store( {request, response, auth} ) {
const user = await auth.current.user
response.sendStatus(201)
}
Но я получаю 500 HTTP-кода в этой конечной точке.
Что я делаю не так?
Я заметил, что при запуске Response.hasMacro('sendStatus')
я получаю false.
Ответ №1:
На самом деле у adonis уже есть это из коробки для всех кодов ответов…
Просто напишите response.created(…..).
Вы также можете использовать, например: .BadRequest(), .NotFound() и т.д… Дополнительная информация о:https://adonisjs.com/docs/4.1/response#_descriptive_methods
Ответ №2:
Я решил эту проблему вчера:
hooks.after.httpServer(() => {
const Response = use('Adonis/Src/Response')
Response.macro('sendStatus', function (status) => {
this.status(status).send(status)
})
})
Комментарии:
1. Проверьте мой ответ… Это вообще не нужно. Вы добавляете хук, который не нужен.
2. Извините, я не проверил ссылку, которой вы поделились. Я отклоняю свой ответ и принимаю ваш. Спасибо