Olá pessoal, estou com esse problema na aula 3 no vídeo 6 - implementando cliente REST, pois ao rodar o comando curl:
curl http://localhost:3000/pagamentos/pagamento -X POST -v -H "Content-type: application/json" -d @files/pagamento.json | json_pp
Aparece o erro :
C:\wamp64\www\projects\git\github\payfast\payfast\node_modules\mysql\lib\protocol\Parser.js:80
throw err; // Rethrow non-MySQL errors
^
TypeError: restify.createJsonClient is not a function
at new CartoesClient (C:\wamp64\www\projects\git\github\payfast\payfast\servicos\clienteCartoes.js:4:27)
Já tentei as soluções dos links:
https://cursos.alura.com.br/forum/topico-restify-createjsonclient-is-not-a-function-42709
https://cursos.alura.com.br/forum/topico-createjsonclient-is-not-a-function-42466
Mas não tive sucesso, meus arquivos estão assim: package.json do payfast:
{
"name": "payfast",
"version": "1.0.0",
"description": "um gateway para pagamento através de recursos http.",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"gateway",
"pagamentos",
"api"
],
"author": "brunogaudino",
"license": "ISC",
"dependencies": {
"body-parser": "^1.17.2",
"consign": "^0.1.5",
"express": "^4.15.3",
"express-validator": "^3.2.1",
"jspdf": "^1.3.3",
"mysql": "^2.13.0",
"restify": "^5.0.1",
"restify-clients": "^1.5.0"
}
}
O if no arquivo pagamentos.js:
if (pagamento.forma_de_pagamento == 'cartao') {
var cartao = req.body["cartao"];
console.log("cartao--> " + cartao);
var clienteCartoes = new app.servicos.clienteCartoes();
clienteCartoes.autoriza(cartao,
function(exception, request, response, retorno){
console.log("retorno-> " + retorno);
res.status(201).json(retorno);
return;
});
}
O arquivo em servicos/clienteCartoes.js:
var restify = require('restify');
function CartoesClient(){
this._cliente = restify.createJsonClient({
url: 'http://localhost:3001',
version: '~1.0'
});
}
CartoesClient.prototype.autoriza = function(cartao, callback){
this._cliente.post('/cartoes/autoriza', cartao, callback);
}
module.exports = function(){
return CartoesClient;
}
Podem me ajudar? Precisam de mais alguma informação?