Задать вопрос
@Stopy

Как в nodejs возвращать ответ на AJAX запрос?

Вот в php все понятно, на запрос просто отдаем что-либо через 'echo'
А как в nodejs? res.end() ?
Но такой код не работает
Клиент:
$.post('/get_comments', {id: parseInt($(this).parent().attr('data-id')), function(data){
        console.log(data);
 }});

Сервер:
var ShowComments_Model = require('../models/ShowComments_Model.js');

module.exports = function (req, res, db, next) {
    res.json({data: 12});
}


Код принимающий запросы:
var ShowComments_Controller = require('./controllers/ShowComments_Controller.js');
app.post('/get_comments', function(req,res,next) {
	ShowComments_Controller(req, res, db, next);
});

Так же на сервере пытался отдавать и строку и отрендеренную часть шаблона res.render('some', {data: data});
Что я делаю не так?
  • Вопрос задан
  • 2659 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
mr_T
@mr_T
Web-разработчик
Во-первых, в jQuery есть функция data и можно (и даже нужно) сократить код до $(this).parent().data('id').
Во-вторых, урлом /get_comments?jsoncallback=? явно что-то не так, а именно второй знак вопроса.
В-третьих, со слов документации по res.end() для Express:
Use to quickly end the response without any data. If you need to respond with data, instead use methods such as res.send() and res.json().

Хотя там и есть опциональный параметр data, лучше все равно написать res.json({data: 12}); хотя бы потому, что такая запись короче и веселее.
Исходя из того, что есть в вопросе, о других ошибках сказать нельзя, поэтому если не поможет, то покажи еще код вызова express (банально, но вдруг ты, например, вызываешь express.get, хотя запрос идет post?)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы