Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

TypeError: path must be a string or Buffer at Object.fs.readFile

Estou usando o postman no lugar do cmd só com o mesmo json do instrutor segui meu código abaixo :

correios.js

module.exports = function (app) {

app.post('/correios/calculo-prazo', function (req, res) {
    var dadosDaEntrega = req.body;

    var correiosSOAPClient = new app.servicos.correiosSOAPClient();
    correiosSOAPClient.calculaPrazo(dadosDaEntrega, function (erro, resultado) {
        if (erro) {
            res.status(500).send(erro);
            return;
        }
        console.log('prazo calculado');
        res.json(resultado);
    });

});

}

CorreiosSOAPClient.js

var soap = require('soap');

function CorreiosSOAPClient() { this._url = 'http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx?wsdl'; }

module.exports = function (app) { return CorreiosSOAPClient; }

CorreiosSOAPClient.prototype.calculaPrazo = function (args, callback) { soap.createClient(this._, function (erro, cliente) { console.log('cliente soap criado');

    cliente.CalcPrazo(args, callback);
});

}

segui o erro no cmd e postman

TypeError: path must be a string or Buffer at Object.fs.readFile (fs.js:358:11) at open_wsdl (C:\Users\tbn01638\Desktop\node API\payfast\node_modules\soap\lib\wsdl.js:2239:8)

TypeError: path deve ser uma string ou Buffer Como posso resolver isso.

2 respostas
solução!

Boa tarde, Samuel! Como vai?

O que pude perceber de diferença do seu código para o do instrutor foi na seguinte linha:

soap.createClient(this._, function (erro, cliente) {
     // restante do código omitido.
}

E deveria ter sido feito assim:

soap.createClient(this._url, function (erro, cliente) {
     // restante do código omitido.
}

Faça essa correção e veja se resolve o problema. Qualquer coisa é só falar!

Grande abraço e bons estudos!

Agora o erro é este mais foi definido a Função CalcPrazo conforme o curso

Cliente soap criado C:\Users\tbn01638\Desktop\node API\payfast\servicos\correiosSOAPClient.js:14 cliente.CalcPrazo(args, callback); ^

TypeError: Cannot read property 'CalcPrazo' of undefined

var soap = require("soap");

function CorreiosSOAPClient() { this._url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmxwsdl"; }

CorreiosSOAPClient.prototype.calculaPrazo = function (args, callback) { console.log("entrou") soap.createClient(this._url, function (erro, cliente) {

    console.log("Cliente soap criado");

    //args: vem do método dentro do correios.js
   cliente.CalcPrazo(args, callback);

});

}

module.exports = function () { return CorreiosSOAPClient; }