开始写账号系统

This commit is contained in:
luchenqun 2016-10-30 21:51:25 +08:00
parent 8ee2cabf7d
commit 139c985ce2
13 changed files with 107 additions and 77 deletions

8
app.js
View File

@ -4,6 +4,7 @@ var favicon = require('serve-favicon');
var logger = require('morgan'); var logger = require('morgan');
var cookieParser = require('cookie-parser'); var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser'); var bodyParser = require('body-parser');
var session = require('express-session');
var routes = require('./routes/index'); var routes = require('./routes/index');
var users = require('./routes/users'); var users = require('./routes/users');
@ -22,11 +23,14 @@ app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ app.use(bodyParser.urlencoded({
extended: false extended: false
})); }));
app.use(cookieParser()); app.use(cookieParser('Wilson'));
app.use(session({
secret: 'wilson'
}));
app.use(express.static(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, 'public')));
app.use('/api', api);
app.use('/', routes); app.use('/', routes);
app.use('/api', api);
app.use('/users', users); app.use('/users', users);
// catch 404 and forward to error handler // catch 404 and forward to error handler

View File

@ -11,6 +11,7 @@
"debug": "~2.2.0", "debug": "~2.2.0",
"ejs": "~2.4.1", "ejs": "~2.4.1",
"express": "~4.13.4", "express": "~4.13.4",
"express-session": "^1.14.1",
"morgan": "~1.7.0", "morgan": "~1.7.0",
"mysql": "^2.11.1", "mysql": "^2.11.1",
"serve-favicon": "~2.3.0", "serve-favicon": "~2.3.0",

View File

@ -1,45 +1,42 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head>
<head> <meta charset="utf-8">
<meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="description" content="bookmark">
<meta name="description" content="bookmark"> <meta name="author" content="luchenqun">
<meta name="author" content="luchenqun"> <title>我的书签</title>
<title>我的书签</title> <link href="/css/externe/semantic.min.css " rel="stylesheet"/>
<link href="/css/externe/semantic.min.css " rel="stylesheet" /> <link href="/css/externe/calendar.min.css" rel="stylesheet"/>
<link href="/css/externe/calendar.min.css" rel="stylesheet" /> <link href="/css/style.css " rel="stylesheet"/>
<link href="/css/style.css " rel="stylesheet" /> <base href="/">
</head>
<base href="/"> <body ng-app="bookmarkApp">
</head> <div class="ui container ">
<!-- directive菜单 -->
<body ng-app="bookmarkApp"> <menus></menus>
<div class="ui container "> <div class="ui container" style="width:100%;height:20px"></div>
<!-- directive菜单 --> <div class="ui container">
<menus></menus> <div ui-view></div>
<div class="ui container" style="width:100%;height:20px"></div> </div>
<div class="ui container"> <div class="foot"></div>
<div ui-view></div> <!-- directive书签编辑 -->
<edit></edit>
</div> </div>
<div class="foot"></div> <script src="/scripts/externe/jquery-3.1.1.min.js"></script>
<!-- directive书签编辑 --> <script src="/scripts/externe/angular.min.js"></script>
<edit></edit> <script src="/scripts/externe/angular-ui-router.min.js"></script>
</div> <script src="/scripts/app-angular.js"></script>
<script src="/scripts/externe/jquery-3.1.1.min.js"></script> <script src="/scripts/services/bookmark-service.js"></script>
<script src="/scripts/externe/angular.min.js"></script> <script src="/scripts/services/pub-sub-service.js"></script>
<script src="/scripts/externe/angular-ui-router.min.js"></script> <script src="/scripts/directives/edit-directive.js"></script>
<script src="/scripts/app-angular.js"></script> <script src="/scripts/directives/menus-directive.js"></script>
<script src="/scripts/services/bookmark-service.js"></script> <script src="/scripts/controllers/bookmarks-controller.js"></script>
<script src="/scripts/services/pub-sub-service.js"></script> <script src="/scripts/controllers/home-controller.js"></script>
<script src="/scripts/directives/edit-directive.js"></script> <script src="/scripts/controllers/tags-controller.js"></script>
<script src="/scripts/directives/menus-directive.js"></script> <script src="/scripts/controllers/menus-controller.js"></script>
<script src="/scripts/controllers/bookmarks-controller.js"></script> <script src="/scripts/controllers/edit-controller.js"></script>
<script src="/scripts/controllers/tags-controller.js"></script> <script src="/scripts/externe/semantic.min.js"></script>
<script src="/scripts/controllers/menus-controller.js"></script> <script src="/scripts/externe/calendar.min.js"></script>
<script src="/scripts/controllers/edit-controller.js"></script> </body>
<script src="/scripts/externe/semantic.min.js"></script>
<script src="/scripts/externe/calendar.min.js"></script>
</body>
</html> </html>

View File

@ -13,7 +13,6 @@ app.config(function($stateProvider, $urlRouterProvider) {
bar: null bar: null
}, },
controller: 'bookmarksCtr' controller: 'bookmarksCtr'
}) })
.state('addBookmark', { .state('addBookmark', {
url: '/addBookmark', url: '/addBookmark',
@ -32,16 +31,13 @@ app.config(function($stateProvider, $urlRouterProvider) {
url: '/settings', url: '/settings',
templateUrl: '/views/settings.html', templateUrl: '/views/settings.html',
}) })
.state('register', { .state('login', {
url: '/register', url: '/login',
templateUrl: '/views/register.html' templateUrl: '/views/login.html'
})
.state('intro', {
url: '/intro',
templateUrl: '/views/intro.html'
}) })
.state('/', { .state('/', {
url: '/', url: '/',
templateUrl: '/views/intro.html' templateUrl: '/views/home.html',
controller: 'homeCtr'
}); });
}); });

View File

@ -0,0 +1,14 @@
app.controller('homeCtr', ['$scope', '$stateParams', '$filter', '$window', 'bookmarkService', 'pubSubService', function($scope, $stateParams, $filter, $window, bookmarkService, pubSubService) {
console.log('Hello homeCtr......');
var params = {
a: 1111
};
bookmarkService.autoLogin(params).then(
function(data) {
console.log(data);
},
function(errorMsg) {
console.log(errorMsg);
}
);
}]);

View File

@ -1,5 +1,5 @@
app.controller('menuCtr', ['$scope', '$state', 'pubSubService', function($scope, $state, pubSubService) { app.controller('menuCtr', ['$scope', '$state', 'pubSubService', function($scope, $state, pubSubService) {
$scope.login = true; /**< 是否登陆 */ $scope.login = false; /**< 是否登陆 */
$scope.selectLoginIndex = 0; /**< 默认登陆之后的选择的菜单索引,下表从 0 开始 */ $scope.selectLoginIndex = 0; /**< 默认登陆之后的选择的菜单索引,下表从 0 开始 */
$scope.selectNotLoginIndex = 0; /**< 默认未登陆之后的选择的菜单索引,下表从 0 开始 */ $scope.selectNotLoginIndex = 0; /**< 默认未登陆之后的选择的菜单索引,下表从 0 开始 */
$scope.keyword = ''; /**< 搜索关键字 */ $scope.keyword = ''; /**< 搜索关键字 */
@ -8,14 +8,14 @@ app.controller('menuCtr', ['$scope', '$state', 'pubSubService', function($scope,
/** /**
* @todo http://stackoverflow.com/questions/31449948/ui-router-state-go-not-working * @todo http://stackoverflow.com/questions/31449948/ui-router-state-go-not-working
*/ */
if ($scope.login) { // if ($scope.login) {
setTimeout(() => { // setTimeout(() => {
$state.go('bookmarks', { // $state.go('bookmarks', {
foo: 'i love you', // foo: 'i love you',
bar: 'hello world' // bar: 'hello world'
}) // })
}, 0); // }, 0);
} // }
// 登陆之后显示的菜单数据。uiSerf内部跳转链接。 // 登陆之后显示的菜单数据。uiSerf内部跳转链接。
$scope.loginMenus = [{ $scope.loginMenus = [{
@ -37,11 +37,11 @@ app.controller('menuCtr', ['$scope', '$state', 'pubSubService', function($scope,
// 未登陆显示的菜单数据 // 未登陆显示的菜单数据
$scope.notLoginMenus = [{ $scope.notLoginMenus = [{
uiSref: 'intro', uiSref: '/',
title: '说明' title: '首页'
}, { }, {
uiSref: 'register', uiSref: 'login',
title: '注册' title: '登陆'
}]; }];
/** /**

View File

@ -1,12 +1,26 @@
app.factory('bookmarkService', ['$http', '$q', function($http, $q) { app.factory('bookmarkService', ['$http', '$q', function($http, $q) {
// service interface // service interface
var service = { var service = {
autoLogin: function(params) {
var def = $q.defer();
$http.get('/api/autoLogin/', {
params: params
})
.success(function(data) {
def.resolve(data);
})
.error(function(data) {
console.log('Error: ' + data);
def.reject('Failed to get todos');
});
return def.promise;
},
/** /**
* @func * @func
* @desc 根据显示页数的索引获取书签的数据 * @desc 根据显示页数的索引获取书签的数据
* @param {object} params - 参数 * @param {object} params - 参数
*/ */
getBookmarks: function getBookmarks(params) { getBookmarks: function(params) {
var def = $q.defer(); var def = $q.defer();
$http.get('/api/bookmarks/', { $http.get('/api/bookmarks/', {

3
public/views/login.html Normal file
View File

@ -0,0 +1,3 @@
<p>
这是登陆界面
</p>

View File

@ -1,6 +1,6 @@
<div class="js-menu" ng-controller="menuCtr"> <div class="js-menu" ng-controller="menuCtr">
<div class="ui menu js-login-in" ng-if="login"> <div class="ui menu js-login-in" ng-if="login">
<a class="item" ng-class="{active:$index==selectLoginIndex}" ui-sref="{{ menu.uiSref }}" ui-sref-opts="{reload: true}" ng-repeat="menu in loginMenus"> <a class="item" ng-class="{active:$index==selectLoginIndex}" ui-sref="{{ menu.uiSref }}" ui-sref-opts="{reload: true}" ng-repeat="menu in loginMenus">
<div>{{ menu.title }}</div> <div>{{ menu.title }}</div>
<div class="ui floating dropdown icon js-bookmark-dropdown" ng-if="$index==0"> <div class="ui floating dropdown icon js-bookmark-dropdown" ng-if="$index==0">
<i class="dropdown icon"></i> <i class="dropdown icon"></i>
@ -44,9 +44,6 @@
</div> </div>
<div class="results"></div> <div class="results"></div>
</div> </div>
<!-- <div class="item">
<div class="ui button" ng-click="searchDetail()" ui-sref="bookmarks">详情搜索</div>
</div> -->
<div class="item"> <div class="item">
<div class="ui button" ng-click="showAddBookmarkMoadl()" ui-sref="bookmarks">添加书签</div> <div class="ui button" ng-click="showAddBookmarkMoadl()" ui-sref="bookmarks">添加书签</div>
</div> </div>
@ -57,10 +54,5 @@
</div> </div>
<div class="ui small menu js-not-login-in" ng-if="!login"> <div class="ui small menu js-not-login-in" ng-if="!login">
<a class="item" ng-class="{active:$index==selectNotLoginIndex}" ui-sref="{{ menu.uiSref}}" ng-click="selectMenu($index, login)" ng-repeat="menu in notLoginMenus">{{ menu.title}}</a> <a class="item" ng-class="{active:$index==selectNotLoginIndex}" ui-sref="{{ menu.uiSref}}" ng-click="selectMenu($index, login)" ng-repeat="menu in notLoginMenus">{{ menu.title}}</a>
<div class="right menu">
<div class="item">
<div class="ui button">登陆</div>
</div>
</div>
</div> </div>
</div> </div>

View File

@ -1 +0,0 @@
<p> 这是注册界面 </p>

View File

@ -18,6 +18,13 @@ var client = mysql.createConnection({
}); });
client.connect(); client.connect();
api.get('/autoLogin', function(req, res) {
console.log('autoLogin......');
res.json({
data: "autoLogin reply",
});
});
api.get('/bookmarks', function(req, res) { api.get('/bookmarks', function(req, res) {
console.log('hello bookmarks', JSON.stringify(req.query)); console.log('hello bookmarks', JSON.stringify(req.query));
if (req.query.show === 'navigate') { if (req.query.show === 'navigate') {

View File

@ -3,7 +3,10 @@ var router = express.Router();
/* GET home page. */ /* GET home page. */
router.get('/', function(req, res, next) { router.get('/', function(req, res, next) {
res.render('index', { title: 'Express' }); console.log('Hello , i enter index');
// res.render('index', {
// title: 'Express'
// });
}); });
module.exports = router; module.exports = router;