res.redirect不是函数

时间:2016-12-31 18:20:06

标签: javascript node.js

我尝试使用pagseguro library将pagseguro(付款处理器)与我的应用集成。但是我收到了这个错误:

  

res.redirect不是函数

代码的这一部分:

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 个答案:

答案 0 :(得分:0)

快递附带

res.redirect。要在没有Express的情况下执行此操作,您只需发回301:

res.writeHead(301,
  { Location: 'https://sandbox.pagseguro.uol.com.br/v2/checkout/payment.html?code=' + code; }
);
res.end();

答案 1 :(得分:0)

我解决了更改此函数变量名称的问题:

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();

        });
    });