Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 240

Сервер, ctx.request.body возвращает undefined. Где ошибка? подскажите

23.08.2023, 08:33. Показов 1425. Ответов 22

Студворк — интернет-сервис помощи студентам
ДЕнь добрый.

Отправляю запрос
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(async () => {
        const res = await fetch('http://localhost:7070/', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json;charset=utf-8'
            },
            body: JSON.stringify("{'phone':'11111', 'name': 'Kuku'}"),
            mode: 'no-cors'
        });
 
        const result = await res;
        const jsonRes = await JSON.stringify(result);
        return jsonRes
    })();
И на сервере `ctx.request.body || ctx.body` вместо `body` получаю `undefined`
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const Koa = require('koa');
const json = require('koa-json');
const Router = require('koa-router');
// ...
 
router.post('/', (ctx: any) => {
    console.log('ROUTER request POST');
    const body = ctx.request.body;
 
 
    ctx.response.body = { status: "OKs" }
        console.log(ctx); // то что видим в консое
 
    ctx.response.set('Access-Control-Allow-Origin', '*');
    ctx.response.set('Access-Control-Allow-Headers', 'POST');
 
});
 
 
 
const server = http.createServer(app.callback())
const wsServer = new WS.Server({ server });
 
wsServer.on('connection', (ws: any) => {
 
    ws.send('Hello Ws connection')
});
Хотя `ctx.response.body` в ответе вижу.

При это консоль
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
  request: {
    method: 'POST',
    url: '/',
    header: {
      'content-type': 'application/json',
      'user-agent': 'PostmanRuntime/7.32.2',
      accept: '*/*',
      'cache-control': 'no-cache',
      'postman-token': '...',
      host: 'localhost: 7070',
      'accept-encoding': 'gzip, deflate, br',
      connection: 'keep-alive',
      'content-length': '33'
    }
  },
  response: {
    status: 200,
    message: 'OK',
    header: [Object: null prototype] {
      'content-type': 'application/json; charset=utf-8'
    }
  },
  app: { subdomainOffset: 2, proxy: false, env: 'development' },
  originalUrl: '/',
  req: '<original node req>',
  res: '<original node res>',
  socket: '<original node socket>'
}
Что не так или не туда смотрю.
Посему консоль даже не показывает `body`? Подскажите.

Добавлено через 1 минуту
Вроде нашёл ответ.
Подключил
JavaScript
1
2
3
4
5
const { koaBody } = require('koa-body');
 
app.use(koaBody({
    urlencoded: true,
}));
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.08.2023, 08:33
Ответы с готовыми решениями:

Сервер возвращает ошибку 400 Bad Request
Посылаю серверу пакет данных, который получаю от браузера. Использую сокеты для отправки и приёма. например для доступа к mail.ru такой...

Научите прикручивать request body
Всем привет, я, так сказать,только на пути к просветлению. Нужно послать с помощью request.post запрос на определеный сайт. С помощью...

Stream в Request/Response Body
Добрый день, может кто объяснить, почему body это стрим, почему он не может прийти строкой, и если все же это стрим, то откуда я его...

22
 Аватар для Tryd0g0lik
56 / 3 / 1
Регистрация: 04.05.2012
Сообщений: 240
24.08.2023, 14:20  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от krvsa Посмотреть сообщение
JSON.stringify - не асинхронный
тут и не было смысла об асинхронности думать. Это лишь настроки к fetch

Хорошо. Попробую переписать верверный код , чтоб использовать `.json()`
Сейчас это лишь выдает ошибку так как уже в формате json получаю
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3853 / 1735 / 432
Регистрация: 14.03.2022
Сообщений: 4,411
24.08.2023, 14:23
Вот тебе вариант с async / await...

JavaScript
1
2
3
4
5
(async _ => {
   const res = await fetch('https://jsonplaceholder.typicode.com/todos/1')
   json = await res.json()
   console.log(json)
})()
Добавлено через 1 минуту
Цитата Сообщение от Tryd0g0lik Посмотреть сообщение
Это лишь настроки к fetch
Тут вообще я ничего не понял...

Добавлено через 1 минуту
Цитата Сообщение от Tryd0g0lik Посмотреть сообщение
Попробую переписать верверный код
Если тебе нужна именно строка в ответе - читай ответ методом .text()
Серверный код ведь тебе устраивал. Ты просто не понимаешь как получить теле ответа.
0
1 / 1 / 0
Регистрация: 19.11.2020
Сообщений: 1
24.08.2023, 16:31
У тебя есть несколько проблем с кодом, которые могут привести к тому, что ctx.request.body возвращает undefined.

Отсутствие body-parser: Когда ты используешь Koa.js и хочешь работать с телом запроса, тебе например надо использовать middleware для разбора тела запроса. Самым популярным из них является koa-bodyparser.

JSON stringify: В твоем запросе fetch ты вызываете JSON.stringify на строке, что приведет к двойному кодированию.

добавь
const bodyParser = require('koa-bodyparser');
//...

app.use(bodyParser());

вместо
body: JSON.stringify("{'phone':'11111', 'name': 'Kuku'}"),

используй
body: JSON.stringify({'phone':'11111', 'name': 'Kuku'}),
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.08.2023, 16:31
Помогаю со студенческими работами здесь

Подскажите почему сервер возвращает пустое значение
Форумчане, очень требуются ваши советы да и в целом помощь. Есть сервер на C# и есть расширение Chrome, не могу отправить данные на...

Can't deserialize request body into type: LoginPassword
Добрый день, Прошу помочь, уже пересмотрел кучу форумов. Подскажите пожалуйста - как можно исправить ошибку: Can't deserialize...

Подскажите, Сервер принимает запросы, выполняет и возвращает ответ
Добрый день! Если программа сервер будет принимать от клиентского приложения команду выполнить SQL запрос, сервер будет выполнять запрос...

Required request body is missing: public org.springframework
Т.к. ответить на мой вопрос как отправить массив из Локал сторидж не смогли ни...

Препод говорит где - то ошибка в синтаксисе. Сам код взят из "жефри Рихтер - Создание эффективных WIN32 приложений" Пожалуйста, подскажите где ошибка!
// получаем код ошибки DWORD dwError = GetDlgItemInt(hwnd, IDC_ERRORCODE, NULL, FALSE); HLOCAL hlocal = NULL; // буфер для строки с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru