res.перенаправление не является функцией

Я пытаюсь использовать библиотеку pagseguro для интеграции pagseguro (платежный процессор) с моим приложением. Но я получаю эту ошибку:

res.перенаправление не является функцией

в этой части кода:

parseString(res, function (err, result) {
            code = result.checkout.code;
            var redirect_url = 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code='+code;
           res.redirect(redirect_url); 

        });

Это полный код:

var pagseguro = require('pagseguro');
    //sandbox
    var pag = new pagseguro({
        email : 'xxxxx@gmail.com',
        token: 'XXX',
        mode : 'sandbox'
    });

    //Configurando a moeda e a referência do pedido
    pag.currency('BRL');
    pag.reference('12345');

    pag.addItem({
        id: 1,
        description: 'Plano Analytics Bot',
        amount: "10.00",
        quantity: 1
    });

    pag.buyer({
        name: 'José Comprador',
        email: 'filipe.ferminiano@gmail.com',
        phoneAreaCode: '51',
        phoneNumber: '12345678'
    });

    pag.setRedirectURL("http://www.lojamodelo.com.br/retorno");
    pag.setNotificationURL("http://www.lojamodelo.com.br/notificacao");

    pag.send(function(err, res) {
        if (err) {
            console.log(err);
        }
        var parseString = require('xml2js').parseString;
        parseString(res, function (err, result) {
            code = result.checkout.code;
            var redirect_url = 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code='+code;
            res.redirect(redirect_url); 

        });
    });

2 ответа

  1. res.redirect поставляется с Express. Чтобы сделать это без Express, вы просто отправляете 301 назад:

    res.writeHead(301,
      { Location: 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=' + code; }
    );
    res.end();
    
  2. Я решил изменить это имя переменной функции:

    pag.send(function(err, response) {
            if (err) {
                console.log(err);
            }
            console.log(response);
            var parseString = require('xml2js').parseString;
            parseString(response, function (err, result) {
                console.dir(result);
    
                code = result.checkout.code;
                console.log(code);
    
                var redirect_url = 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code='+code;
                console.log(redirect_url);
                res.writeHead(301,
                  { Location: 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=' + code }
                );
                res.end();
    
            });
        });