我已经安装了MEAN.JS,我只使用服务器端代码。我没有使用前端角度代码。
我正在使用不同的服务器。对于前端(客户端)我维护一个服务器,后端(服务器端)我正在使用MEAN.JS。
注册和Signin工作正常但是当我创建文章时我收到错误
"用户未登录"我怎么能解决这个问题。请有人帮助我。
路线:
我的MEAN.JS路线下面的文章
app.route('/articles')
.get(users.requiresLogin,articles.list)
.post(users.requiresLogin,articles.create);
控制器:
exports.create = function(req, res) {
var article = new Article(req.body);
article.user = req.body._id;
article.save(function(err) {
if (err) {
return res.status(400).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(article);
}
});
};
中间件代码:
/**
* Require login routing middleware
*/
exports.requiresLogin = function(req, res, next) {
//console.log(req.body.id);
if (!req.isAuthenticated()) {
return res.status(401).send({
message: 'User is not logged in'
});
}
next();
};
我的前端代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://code.angularjs.org/angular-1.0.1.js"></script>
</head>
<body ng-app="myApp">
<div ng-controller="MyCtrl"><br><br>
<input type="text" ng-model="title"><br><br><br>
<input type="text" ng-model="content"><br><br><br>
<input type="button" ng-click="submit()" value="submit">
</div>
<script type='text/javascript'>//<![CDATA[
var myApp = angular.module('myApp',[]);
function MyCtrl($scope,$http) {
$scope.submit = function()
{
var article= {
title: $scope.title,
content: $scope.content,
};
$http.post('http://192.168.1.6:3000/articles', article).success(function (response) {
console.log(response);
}).error(function (response) {
$scope.error = response.message;
console.log(response.message);
});
}
}
</script>
</body>
</html>
我认为中间件问题我该如何解决这个问题帮助我,我是这个全栈的新手
身份验证Passport方法:
req.isAuthenticated = function() {
var property = 'user';
if (this._passport && this._passport.instance) {
property = this._passport.instance._userProperty || 'user';
}
return (this[property]) ? true : false;
};