1
resposta

upload completely sent off: 316 out of 316 bytes http 400 bad request no chunk, no close, no size. assume close to signal end

Pessoal,

boa tarde!

ao executar :

curl http://localhost:3000/pagamentos/pagamento - X POST -v -H "Content-type: application/json" -d @files/pagamento.json

está dando o erro: upload completely sent off: 316 out of 316 bytes http 400 bad request no chunk, no close, no size. assume close to signal end

custom-express.js

var express = require('express');
var consign = require('consign');
var bodyParser = require('body-parser');
var expressValidator = require('express-validator');


module.exports = function(){
  var app=express();
  app.use(bodyParser.urlencoded({extended:true}));
  app.use(bodyParser.json());
  app.use (expressValidator());

  consign()
    .include('controllers')
    .then('persistencia')
    .then('servicos')
    .into(app);

  return app;
}

pagamentos.js

module.exports = function(app){ app.get('/pagamentos',function(req,res){ console.log('recebida requisicao de teste na porta 3000.'); res.send('OK.');

}); app.delete('/pagamentos/pagamento/:id',function(req,res){ var pagamento = {}; var id = req.params.id;

pagamento.id =id;
pagamento.status = 'CANCELADO';
var connection = app.persistencia.connectionFactory();
var pagamentoDao = new app.persistencia.PagamentoDao(connection);

pagamentoDao.atualiza(pagamento, function(erro){
    if (erro){
      res.status(500).send(erro);
      return;
    }
    console.log('pagamento cancelado');
    res.STATUS(204).send(pagamento);
});

}); app.put('/pagamentos/pagamento/:id',function(req,res){

var pagamento = {};
var id = req.params.id;

pagamento.id =id;
pagamento.status = 'CONFIRMADO';
var connection = app.persistencia.connectionFactory();
var pagamentoDao = new app.persistencia.PagamentoDao(connection);

pagamentoDao.atualiza(pagamento, function(erro){
    if (erro){
      res.status(500).send(erro);
      return;
    }
    console.log('pagamento confirmado');
    res.send(pagamento);
});

});

app.post('/pagamentos/pagamento',function(req,res){

req.assert("pagamento.forma_de_pagamento","Forma de pagamento eh obrigatorio").notEmpty();
req.assert("pagamento.valor","Valor eh obrigatorio e decimal").notEmpty().isFloat();

var erros = req.validationErrors();

if(erros){
  console.log('Erros de validação encontrados');
  res.status(400).send(erros);
  return;
}
var pagamento =req.body["pagamento"];
console.log('processando pagamento');

pagamento.status = 'CRIADO';
pagamento.data = new Date;

var connection = app.persistencia.connectionFactory();
var pagamentoDao = new app.persistencia.PagamentoDao(connection);

pagamentoDao.salva(pagamento,function(erro,resultado){
  if(erro) {
    console.log ("Erro ao inserir no banco " + erro);
    res.stataus(500).send(erro);
  }else {
    pagamento.id = resultado.insertId;
    console.log('pagamento criado');

    if(pagamento.forma_de_pagamento =='cartao'){
      var cartao = req.body["cartao"];
      console.log('cartao');
      var clienteCartoes = new app.servicos.clienteCartoes();
      clienteCartoes.autoriza(cartao,function(exception,request,response,retorno){
        console.log('retorno');
        res.status(201).json(retorno);
        return;
      });

    }else {
      res.location('/pagamentos/pagamento/' + pagamento.id);

      var response = {
        dados_do_pagamento: pagamento,
        links:[
          {
            href:" http://localhost:3000/pagamentos/pagamento/" +
            pagamento.id,
            rel:"confirmar",
            method:"PUT"
          },
          {
            href:" http://localhost:3000/pagamentos/pagamento/" +
            pagamento.id,
            rel:"cancelar",
            method:"DELETE"
          }
        ]
      }
      res.status(201).json(response);
    }


  }


});

}); } clienteCartoes.js

var restify = require('restify');

function CartoesClient(){
  this._cliente = restify.createJsonClient({
    url:'http://localhost:3001'
  });
}

CartoesClient.prototype.autoriza = function(cartao,callback){
  this._cliente.post('/cartoes/autoriza',cartao,callback  );
}

module.exports = function(){
 return CartoesClient;
}
1 resposta

O arquivo chega a subir?