gpt4 book ai didi

javascript - 使用 restangular 将表单数据从 AngularJs 前端发布到 NodeJS RESTful API

转载 作者:可可西里 更新时间:2023-11-01 10:19:29 24 4
gpt4 key购买 nike

我正在处理一个项目,我在使用 restangular 将表单数据从我的 angularJS 前端发布到我的后端 RESTful API 时遇到了麻烦。每次我尝试都会收到错误代码 400(错误请求)。下面是我的代码

应用程序.js

'use strict';

angular
.module('clientApp', ['ngRoute', 'restangular'])
.config(function ($routeProvider, RestangularProvider) {

RestangularProvider.setBaseUrl('http://127.0.0.1:3000');

$routeProvider
.when('/', {
templateUrl: 'views/login.html',
controller: 'LoginCtrl',
controllerAs: 'login'
})

.when('/create/user', {
templateUrl: 'views/user-add.html',
controller: 'UserAddCtrl',
controllerAs: 'userAdd'
})
.otherwise({
redirectTo: '/'
});
});

查看/user.html

<div ng-controller="UserAddCtrl">

<form class="form-horizontal" name="regForm" ng-submit="saveUser()">
<fieldset>

<div class="form-group">
<label class="col-md-4 control-label" for="textinput">First Name</label>
<div class="col-md-4">
<input id="Fname" name="Fname" type="text" ng-model="newUser.FnameValue" placeholder="Enter First Name" class="form-control input-md" required>

</div>
</div>


<div class="form-group">
<label class="col-md-4 control-label" for="Last Name">Last Name</label>
<div class="col-md-4">
<input id="Lname" name="Lname" ng-model="newUser.LnameValue" type="text" placeholder="Enter Last Name" class="form-control input-md">

</div>
</div>


<div class="form-group">
<label class="col-md-4 control-label" for="Staff ID">Staff ID</label>
<div class="col-md-4">
<input id="StaffId" name="StaffId" ng-model="newUser.StaffIdValue" type="text" placeholder="Enter Staff ID" class="form-control input-md" required>
</div>
</div>


<div class="form-group">
<label class="col-md-4 control-label" for="Email">Email</label>
<div class="col-md-4">
<input id="Email" name="Email" ng-model="newUser.EmailValue" type="text" placeholder="Enter Email" class="form-control input-md" required="">

</div>
</div>


<div class="form-group">
<label class="col-md-4 control-label" for="Password">Password</label>
<div class="col-md-4">
<input id="Password" name="Password" ng-model="newUser.PasswordValue" type="password" placeholder="Enter Password" class="form-control input-md" required>

</div>
</div>

<div class="form-group">
<label class="col-md-4 control-label" for="Register"></label>
<div class="col-md-4">
<button id="Register" name="Register" type="submit" class="btn btn-primary">Creat User</button>
</div>
</div>

</fieldset>
</form>

</div>

Controller /user.js

'use strict';

angular.module('clientApp')
.controller('UserAddCtrl', function ($scope, Restangular, $location) {

$scope.saveUser = function() {
$scope.newUser = {};

var restVar = Restangular.all('user');

restVar.post($scope.newUser).then(function() {
$location.path('/users');
console.log('Success');
}, function(response) {
console.log('Error with status code', response.status);
});
};

});

每次我执行关于代码时,我都会收到 400(错误请求)...我做错了什么?

请注意,我使用的是 mongodb,我的数据库名称是 isdbmeanapp,我的集合名称是 user,因此我的服务器 url 是 http://127.0.0.1:3000/user

最佳答案

在 Restangular 中,帖子应该针对集合而不是元素。

在你的情况下,POST 应该是这样的;

$scope.newUser = {email :"", password: "", etc: ""};

然后发起POST请求;

Restangular.all('user').post("users", $scope.newUser);

引用资料;

https://github.com/mgonto/restangular#element-methods

Restangular POST form data in json format in Angular JS

关于javascript - 使用 restangular 将表单数据从 AngularJs 前端发布到 NodeJS RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40634791/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com