帖子后未达到



我对我的平均堆栈应用程序遇到麻烦,我不知道为什么在执行帖子(使用了工厂(之后(。这是控制器:

angular.module('AcontecimientoCtrl', ['AcontecimientoService'])
  .controller('AcontecimientoController', function($scope, Acontecimiento) {
    var pls = this;
    $scope.agregarAcontecimiento = function() {
        pls.errorMsg = false;
        Acontecimiento
          .create($scope.acontecimiento)
          .then(function(data) {
            $scope.acontecimiento = {};
            console.log(data.data.success);
            console.log(data.data.message);
            if (data.data.success) {
              pls.successMsg = data.data.message;
            } else {
                pls.errorMsg = data.data.message;
            }
        })
    };
});

这是服务:

angular.module('AcontecimientoService', [])
  .factory('Acontecimiento', function($http) {
    return {
        get : function() {
            return $http.get('/api/acontecimiento');
        },
        create : function(acontecimiento) {
            return $http.post('/api/acontecimiento', acontecimiento);
        },
        delete : function(id) {
            return $http.delete('/api/acontecimiento/' + id);
        }
    }
});

这是帖子方法:

app.post('/api/acontecimiento', function(req, res) {
         // create a todo, information comes from AJAX request from Angular
         if (req.body.campo == '' || req.body.titular == '' || req.body.fecha == '' || req.body.tipo == '') {
           res.json({success: false, message: 'Campo, titular, fecha y tipo de operacion deben especificarse'});
         } else {
           Acontecimiento.create({
             campo : req.body.campo,
             titular : req.body.titular,
             fecha : req.body.fecha,
             tipo : req.body.tipo,
             brucelosis : req.body.brucelosis,
             vacas : req.body.vacas,
             toros : req.body.toros,
             novillitos : req.body.novillitos,
             vaquillonas : req.body.vaquillonas,
             terneras : req.body.terneras,
             terneros : req.body.terneros,
           }, function(err, acontecimiento) {
           if (err)
              res.sendfile('./public/views/index.html');
           });
         }
       });

,如果您需要,这是我的观点:

<div class="row show-hide-message" ng-show="successMsg">
  <div class="alert alert-success">Nueva operacion guardada</div>
</div>
<div class="row show-hide-message" ng-show="errorMsg">
  <div class="alert alert-danger">Campo, titular, fecha y tipo de operacion deben especificarse</div>
</div>
<div class="jumbotron text-center">
    <form ng-submit="agregarAcontecimiento()" class="form-horizontal">
      <div class="form-group">
        <label class="control-label col-sm-2" for="campo">Campo</label>
        <div class="col-sm-9">
          <select class="form-control" id="campo" ng-model="acontecimiento.campo" required />
            <option>GUARANIMINI</option>
            <option>TRES MARIAS</option>
            <option>ESPADAÑAL</option>
          </select>
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="titular">Titular</label>
        <div class="col-sm-9">
          <select class="form-control" id="titular" ng-model="acontecimiento.titular" required />
            <option>RUBEN CARLOS P.</option>
            <option>VICTOR HUGO P.</option>
          </select>
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="fecha">Fecha</label>
        <div class="col-sm-9">
          <input type="date" id="fecha" class="form-control" ng-model="acontecimiento.fecha" required />
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="tipo">Tipo</label>
        <div class="col-sm-9">
          <select class="form-control" id="tipo" ng-model="acontecimiento.tipo" required />
            <option>VACUNA</option>
            <option>VENTA</option>
            <option>MUERTE</option>
            <option>TRANSLADO</option>
            <option>CONTAR STOCK ACTUAL</option>
          </select>
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="brucelosis">Brucelosis</label>
        <div class="col-sm-9">
          <input type="number" id="brucelosis" class="form-control" ng-model="acontecimiento.brucelosis"  />
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="vacas">Vacas</label>
        <div class="col-sm-9">
          <input type="number" id="vacas" class="form-control" ng-model="acontecimiento.vacas"  />
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="toros">Toros</label>
        <div class="col-sm-9">
          <input type="number" id="toros" class="form-control" ng-model="acontecimiento.toros"  />
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="novillitos">Novillitos</label>
        <div class="col-sm-9">
          <input type="number" id="novillitos" class="form-control" ng-model="acontecimiento.novillitos"  />
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="vaquillonas">Vaquillonas</label>
        <div class="col-sm-9">
          <input type="number" id="vaquillonas" class="form-control" ng-model="acontecimiento.vaquillonas"  />
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="terneras">Terneras</label>
        <div class="col-sm-9">
          <input type="number" id="terneras" class="form-control" ng-model="acontecimiento.terneras"  />
        </div>
      </div>
      <div class="form-group">
        <label class="control-label col-sm-2" for="terneros">Terneros</label>
        <div class="col-sm-9">
          <input type="number" id="terneros" class="form-control" ng-model="acontecimiento.terneros"  />
        </div>
      </div>
      <div class="pull-right">
        <button type="submit" class="btn btn-default">Aceptar</button>
      </div>
    </form>
</div>

您的代码中的问题是:

在客户端,您没有处理错误在服务器端您没有处理成功

因此,更改角控制器代码并添加错误回调:

$scope.agregarAcontecimiento = function() {
    pls.errorMsg = false;
    Acontecimiento
        .create($scope.acontecimiento)
        .then(function(data) {
        $scope.acontecimiento = {};
        console.log(data.data.success);
        console.log(data.data.message);
        if (data.data.success) {
            pls.successMsg = data.data.message;
        } else {
            pls.errorMsg = data.data.message;
        }
    },
    function(err){
        console.log('eror')
    })
};

在@George提到的服务器端,添加成功响应

app.post('/api/acontecimiento', function (req, res) {
    // create a todo, information comes from AJAX request from Angular
    if (req.body.campo == '' || req.body.titular == '' || req.body.fecha == '' || req.body.tipo == '') {
        res.json({
            success: false,
            message: 'Campo, titular, fecha y tipo de operacion deben especificarse'
        });
    } else {
        Acontecimiento.create({
            campo: req.body.campo,
            titular: req.body.titular,
            fecha: req.body.fecha,
            tipo: req.body.tipo,
            brucelosis: req.body.brucelosis,
            vacas: req.body.vacas,
            toros: req.body.toros,
            novillitos: req.body.novillitos,
            vaquillonas: req.body.vaquillonas,
            terneras: req.body.terneras,
            terneros: req.body.terneros,
        }, function (err, acontecimiento) {
            if (err) {
                res.sendfile('./public/views/index.html');
            } else {
                res.json({
                    success: true,
                    message: 'Success'
                });
            }
        });
    }
});

问题在您的节点侧,一旦将项目添加到我只能假设的是数据库,一切都很好,您永远不会返回响应。

将您的nodejs代码更改为:

app.post('/api/acontecimiento', function (req, res) {
    // create a todo, information comes from AJAX request from Angular
    if (req.body.campo == '' || req.body.titular == '' || req.body.fecha == '' || req.body.tipo == '') {
        res.json({
            success: false,
            message: 'Campo, titular, fecha y tipo de operacion deben especificarse'
        });
    } else {
        Acontecimiento.create({
            campo: req.body.campo,
            titular: req.body.titular,
            fecha: req.body.fecha,
            tipo: req.body.tipo,
            brucelosis: req.body.brucelosis,
            vacas: req.body.vacas,
            toros: req.body.toros,
            novillitos: req.body.novillitos,
            vaquillonas: req.body.vaquillonas,
            terneras: req.body.terneras,
            terneros: req.body.terneros,
        }, function (err, acontecimiento) {
            if (err) {
                res.sendfile('./public/views/index.html');
            } else {
                res.json({
                    success: true,
                    message: 'All good!'
                });
            }
        });
    }
});

然后它应该击中.then()

相关内容

  • 没有找到相关文章

最新更新