2
im angularJs中的新功能,即時嘗試使用angularJS和nodejs(服務器端)進行基本登錄,現在我不在乎安全性,只是試圖學習如何發佈。所以我做了一個登錄表單,並用角控制器:將angularjs發佈到nodejs Express(Bad request)
我的登錄表單:
<div class="col-md-4">
<h1>Login</h2>
<form class="form" >
<div class="form-group">
<label>Username</label>
<input type="email" class="form-control" ng-model="login.mail" required>
</div>
<div class="form-group">
<label>Password</label>
<input type="password" class="form-control" ng-model="login.password" required>
</div>
<div>
<button type="text" class="btn btn-default" ng-click="login()">Login</button>
</div>
</form>
</div>
然後我的路由器&控制器Angularjs:
'use strict';
angular.module('login', ['ngRoute'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/login', {
templateUrl: 'views/login.html',
controller: 'loginCtrl'
});
}])
.controller('loginCtrl', ['$scope', '$http', function ($scope, $http) {
$scope.login = function() {
$http.post('/api/users/login', $scope.login).success(function (response) {
console.log(response);
// refresh();
});
};
}]);
和服務器端我有:
router.post('/login/', function(req, res) {
// here "/login/" means "https://stackoverflow.com/users/login" (in index of controllers)
console.log(req.body.mail);
var usermail = req.body.mail;
var pass = req.body.password;
console.log(usermail + pass);
User.find({mail: usermail}, function(err, user) {
if (err) {
res.send(err);
console.log("ça marche pas")
} else {
res.json(user);
console.log(user);
}
})
});
服務器端:它的工作原理(當我使用DHC鉻擴展早報),但是當使用im angularjs查看我得到這個錯誤:
POST http://localhost:3000/api/users/login 400(錯誤請求)
請幫我解決這個問題,我想我錯過了什麼。先謝謝你。
我只是想發送到電子郵件和密碼計算在我的服務器的登錄表單,我確定我的控制器不工作:現在我試着用你的表達它給了我一個404錯誤 我忘記告訴你,我有不好的請求400,並在服務器端:無效json – AmenzO
您將不得不調試自己正在發送到服務器的內容。如果您使用瀏覽器開發工具(F12)。您可以觀看發送到您的API的內容。然後,您可以檢查您發送的JSON是否有效(例如,在本網站上:http://json.parser.online.fr/)。 –
我已經更新了我的答案,它顯示瞭如何改進您的代碼。你有一個函數$ scope.login,你可以指定你的變量。 –