未从服务器获取响应.Angularjs,nodejs
Not getting response from server. Angularjs, nodejs
我正试图从服务器到客户端获得"成功"或"失败"响应。服务器在express框架中的node.js中实现,客户端在angularjs中实现。
这是服务器端node.js的一部分:
connection.connect();
/* GET home page. */
router.get('/', function(req, res, next) {
res.sendFile(path.join(__dirname, '../', 'views', 'login.html'));
});
router.get('/login', function(req,res)
{
console.log("Username:"+req.query.username);
console.log("Password:"+req.query.password);
var user = req.query.username;
var pass = req.query.password
connection.query("select * from user where login_name = ?", user, function(err, rows, fields) {
if (!err){
if(user==rows[0].login_name && pass==rows[0].pass){
console.log("success");
res.json({status: 200});
}
}
else
console.log('Error while performing Query.', err);
});
这是angularjs部分:
<form name="login">
<div class="login" ng-app="loginPage" ng-controller="loginController">
<input type="text" placeholder="username" ng-model="uname" name="userid"><br>
<input type="password" placeholder="password" ng-model="pword" name="pswrd"><br>
<!--<input type="button" ng-click="login();" onclick="check(this.form)" value="Login"/>-->
<button ng-click="login();">Login</button>
</div>
</form>
<script language="javascript">
var app = angular.module('loginPage', []);
app.controller('loginController', function($scope, $http) {
console.log("inside controller");
$scope.login = function() {
console.log("inside the login function");
console.log($scope.uname);
var verify = $http({
method: 'GET',
url: '/login' +
'',
params: { username: $scope.uname, password: $scope.pword }
}).then(
function successful(response) {
$scope.theResponse = response.data;
window.open("./team_list.html")
}, function unsuccessful(response) {
alert('Wrong username/password.');
$scope.theResponse = response.data;
});
}
})
</script>
我试着在浏览器的登录页面上键入用户名的"test"和密码的"test",因为这是我在sql数据库中输入的内容。具体来说,我不知道为什么登录页面没有链接到我指定路径的team_list页面。
我真的不知道为什么它不起作用。如果我应该以不同的方式使用json,我会感谢更多的帮助,因为我不太熟悉它。
NodeJS端的路由顺序错误。/login
应该放在第一位。否则,所有内容都将由'/'
路由提供服务。
router.get('/login', function(req, res) {
console.log("Username:" + req.query.username);
console.log("Password:" + req.query.password);
var user = req.query.username;
var pass = req.query.password
connection.query("select * from user where login_name = ?", user, function(err, rows, fields) {
if (!err) {
if (user == rows[0].login_name && pass == rows[0].pass) {
console.log("success");
res.json({
status: 200
});
}
} else
console.log('Error while performing Query.', err);
});
/* GET home page. */
router.get('/', function(req, res, next) {
res.sendFile(path.join(__dirname, '../', 'views', 'login.html'));
});
检查您的控制台,您甚至可以从那里找出问题。控制台的快捷方式
打开不同浏览器控制台的快捷键
这样做:
connection.query("select * from user where login_name = ?", user, function(err, rows, fields) {
if (!err){
if(user==rows[0].login_name && pass==rows[0].pass){
console.log("success");
res.send(200);
}
}
else{
console.log('Error while performing Query.', err);
res.send(401);
}
});
实际上,您应该发送错误或成功代码,如200或401。
以及使用res.send(ErrorCode)
或res.sendStatus(ErrorCode)
,它会在客户端自动为您完成,如下所示:
<script language="javascript">
var app = angular.module('loginPage', []);
app.controller('loginController', function($scope, $http, $window) {
console.log("inside controller");
$scope.login = function() {
console.log("inside the login function");
console.log($scope.uname);
$http.get('/login').then(function (success) {
$window.alert('Success');
}, function (error) {
$window.alert('Wrong username/password.');
});
}
});
</script>
相关文章:
- 否'访问控制允许来源'标头存在于IISNOde中请求的资源(AngularJS+NodeJs)上
- 如何“;得到“;从NodeJS到AngularJS
- AngularJS路由服务器端支持(NodeJS+express)
- Json在nodeJs和AngularJs中返回undefined
- 在angularjs或nodejs中获取Pocket访问令牌
- 如何从本地文件夹(磁盘存储)读取或获取图像文件,并使用nodejs服务器将其发送到Angularjs
- 陷入因果报应验证作业(nodejs,angularjs)
- nodejs expressjs angularjs routing
- 如何使用angularjs,nodejs和mysql执行CRUD操作
- 希望仅为已登录的用户显示链接,否则它显示该链接在AngularJS和NodeJS中被隐藏或禁用
- 来自 AngularJS 的 NodeJS HTTP 请求
- AngularJS:http 链调用问题和 NodeJS:在多个 http 调用中使用变量的问题
- 使用MEAN angularjs Nodejs堆栈的Phonegap客户端
- AngularJS+NodeJS路由-不工作
- AngularJS/NodeJS/RESTEasy+JBoss/LDAP堆栈的身份验证机制
- HTML 5模式移除angularjs+nodejs中的散列
- 为web应用生产做好准备(angularjs/nodejs)
- 从PHP过渡到JavaScript(AngularJS, NodeJS等)的最佳方式
- AngularJS + NodeJS -调用注入服务时出错
- Javascript / AngularJS / NodeJS -检查副本