Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 52

Как определить тип запроса в node.js?

13.07.2019, 00:31. Показов 2450. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, я пытаюсь создать бота callback API для вк сообщества на node.js. Мне нужно с помощь case-switch определить тип запроса, почти везде это делают примерно так: req.body.type, но у меня ничего не работает, вместо этого вк выдаёт ошибку: Сервер вернул неправильный ответ: HTTP response code said error.
Вот сам код файла index.js(сервер у меня работает на heroku):
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const pg = require('pg');
//var typeis = require('type-is');
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000
 
express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .post('/bot', function(req, res){
    switch(req.body.type){
      case "confirmation":
          res.send(process.env.VK_CONFIRNATION_CODE);
      break;
 
      case "massage_new":
 
      break;
    }
  })
  .listen(PORT, () => console.log(`Listening on ${ PORT }`));
P.S Возможно этот вопрос слишком банальный, но я новичок, так что не судите строго.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.07.2019, 00:31
Ответы с готовыми решениями:

Как определить тип запроса в node.js?
Всем привет, я пытаюсь создать бота callback API для вк сообщества на node.js. Мне нужно с помощь case-switch определить тип запроса, почти...

Как определить тип запроса в node.js?
Всем привет, я пытаюсь создать бота callback API для вк сообщества на node.js. Мне нужно с помощь case-switch определить тип запроса, почти...

Определить тип запроса
Всем привет ! Нужно определить кто в момент клика по новости обращается к битриксу (например: если переходить с сайта или переходить...

5
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
13.07.2019, 12:14
Кот1223432234, не очень понял суть вопроса. Какой запрос нужно обработать? Входящий на ваш сервер или тот, что вы отправляете на сервера ВК?

Цитата Сообщение от Кот1223432234 Посмотреть сообщение
.post('/bot', function(req, res){
* * switch(req.body.type){
* * * case "confirmation":
* * * * * res.send(process.env.VK_CONFIRNATION_COD E);
* * * break;
case "massage_new":
break;
* * }
Этот код проверяет значение параметра "type" в теле запроса.
0
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 52
13.07.2019, 14:26  [ТС]
Мне нужно ответить вк на его запрос переменной VK_CONFIRNATION_CODE в случае если запрос будет типа "confirmation", но проблема в том, что метод req.body.type не работает. Как я понял что проблема именно в этом? Если я убираю проверку на тип запроса, то вк принимает ответ res.send(process.env.VK_CONFIRNATION_COD E) и подтверждает соединение с сервером:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const pg = require('pg');
//var typeis = require('type-is');
const express = require('express')
const path = require('path')
const PORT = process.env.PORT || 5000
 
express()
  .use(express.static(path.join(__dirname, 'public')))
  .set('views', path.join(__dirname, 'views'))
  .set('view engine', 'ejs')
  .get('/', (req, res) => res.render('pages/index'))
  .post('/bot', function(req, res){
          res.send(process.env.VK_CONFIRNATION_CODE);
    }
  })
  .listen(PORT, () => console.log(`Listening on ${ PORT }`));
Но мне нужно также давать ответ на запрос с типом "massage_new", который будет отличаться от первого: "res.send(process.env.VK_CONFIRNATION_CO DE)";
Везде пишут так: req.body.type, но видимо у меня более новая версия node.js или что то типо того и поэтому не работает. подскажите прошу как опеределить тип запроса подругому, ну или как исправить ошибку, чтобы метод req.body.type работал.
0
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
13.07.2019, 16:10
Кот1223432234, сам ВК отправляет вам запрос на POST /bot?

Если что, у вас ошибка в написании:

JavaScript
1
VK_CONFIRNATION_CODE
должно быть

JavaScript
1
VK_CONFIRMATION_CODE
.

Что означает "не работает"? Вк отправляет ошибку, или скрипт вылетает с ошибкой?
0
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 52
13.07.2019, 17:49  [ТС]
Я попробовал отправить скрин терминала с логами heroku, ошибку в вк, код.(Есть вероятность, что я сделал что то не так и фото не отправится, ибо я мало тем создавал на кибер форуме)
Миниатюры
Как определить тип запроса в node.js?  
0
0 / 0 / 0
Регистрация: 27.01.2017
Сообщений: 52
13.07.2019, 17:59  [ТС]
Так же вот скрин, если убрать проверку типа запроса:
Миниатюры
Как определить тип запроса в node.js?  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.07.2019, 17:59
Помогаю со студенческими работами здесь

Определить тип запроса
Доброе утро кодерам! Подскажите, как узнать тип запроса, урл которого достаем из request переменной: function onRequest(request,...

Не удается неявно преобразовать тип "UnsafeStack.Node" в "UnsafeStack.Node*" - как исправить?
Узел: namespace UnsafeStack { public unsafe struct Node { public int value; public Node* next; ...

Как определить тип переменной, ссылающейся на определённый класс? Нужен именно тип, а не ссылка на обьект!
interface HowDefineMyType { void info(); } class A implements HowDefineMyType { public int x;

Прочитать тело запроса в Node.js
Добрый день. На сервере (Node.js) написан такой код let post = " "; req.on('data', function(str){ post += str; ...

Реализация curl GET запроса в Node.js
Приветствую, нужно сделать запрос на api omnidesk с аутентификацией.В документации у них приведет пример GET запроса для PHP: curl -u :...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru