Получить данные сообщения jquery в node.js

Я надеюсь, что это не глупый вопрос или дубликат, но мне кажется, что куда бы я ни посмотрел, можно найти другой ответ, и я не смог заставить ни один из них работать ...

С jQuery и PHP я могу делать следующее для отправки и получения данных между интерфейсом и сервером ->

$.post("logic.php", {
    command: command
}, function(data, status) {
    $("#output").html(data);
}); //jQuery (front-end)


if (isset($_POST['command'])) {
    $command = $_POST['command'];
    if ($command == 'about') {
        echo 'about';
    } else {
        echo 'command not found';
    }
} // PHP (back-end)

Связь работает и кажется довольно простой. Теперь я перехожу на Node.js, и мне очень трудно добиться того же эффекта. Я не получаю никаких ошибок, но похоже, что он вообще не общается ... Я пробовал много разных вещей, но вот то, что у меня есть сейчас ->

$.post("index.js", {
    command: command
}, function(data, status) {
    out(data); /* out is a function i made that puts the data on the page in a nice format */
}); // jQuery (front-end)


var express = require('express');
var bodyParser = require('body-parser')
var app = express();
// Javascript back-end
app.post('/', function (req, res, next) {
    console.info(req.body) ;
}); // Should log command to the console but nothing at all happens

Я очень новичок в node.js, но хотел перейти с PHP, потому что слышал об отличных возможностях AJAX (на которых основано мое приложение) ... пожалуйста, помогите :)

Вам необходимо установить промежуточное ПО bodyParser в свое приложение. Узнайте о том, как работает Express.

SLaks 11.12.2018 01:40

@SLaks Он этим пользуется. @OP: Вы запрашиваете index.js, но вам нужен $.post("/", ...)

Chris G 11.12.2018 01:40

Вам также необходимо запустить сервер и указать пути.

SLaks 11.12.2018 01:40

Однако я не совсем понимаю, что вы имеете в виду под «отличными возможностями AJAX узла» ... AJAX реализуется на стороне клиента. node работает совсем иначе, чем PHP. Во-первых, хотя express поддерживает статические файлы, все остальное делается с помощью маршрутов; в основном это означает, что site.com/a/b с точки зрения клиента редко означает «файл b в папке a» на сервере.

Chris G 11.12.2018 01:41

Я знаю, что мне нужны bodyParser, express и запущенный сервер. У меня все это работает, я разместил только код для части AJAX. Следует ли мне пересмотреть и вставить весь свой код?

user9840905 11.12.2018 01:46

Вы прочитали мой первый комментарий? Вам нужен $.post("/", ...), так как это маршрут, который вы обрабатываете на стороне сервера.

Chris G 11.12.2018 01:59

@ChrisG Ваше решение в сочетании с Meghans действительно работает! Спасибо!

user9840905 11.12.2018 02:47
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
134
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы определяете bodyParser, но никогда не используете его. Вы должны добавить его в экспресс-конфигурацию.

app.use(bodyParser.urlencoded());

После этого req.body больше не будет undefined.

Я добавил это, но это дает мне ошибку «body-parser устаревший undefined расширенный: предоставить расширенный параметр». Это все еще не работает. Нужно ли мне что-нибудь с атрибутами успеха и ошибки?

user9840905 11.12.2018 02:43

@MichaelHoefler app.use(bodyParser.urlencoded({ extended: true }))

SanSolo 11.12.2018 02:59

Другие вопросы по теме