欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

AngularJS + Node.js + MongoDB開發(fā)的基于高德地圖位置的通訊錄

 更新時間:2015年01月02日 16:12:02   投稿:hebedich  
這篇文章主要介紹了AngularJS + Node.js + MongoDB開發(fā)的基于高德地圖位置的通訊錄,需要的朋友可以參考下

一、閑扯

有一天班長說了,同學們希望我開發(fā)一個可以共享位置的通訊錄,于是自己簡單設計了下功能。包括用戶角色、發(fā)表微博、共享位置等等。這次也是有點私心的,為了鍛煉最近看的angularjs,于是果斷選擇Node.js + MongoDB + angular.js的方案。當然,開發(fā)Node.js的體會越來越深刻。記得,去年leader告訴我說盡量讓node的每一個服務只支撐一個業(yè)務功能,這樣才能更方便的維護。當時特別想把一個Node服務做的特別強大?,F(xiàn)在看來leader的做法是對的,我更加傾向于把node服務功能單一化...

二、直接上干貨

數(shù)據(jù)庫服務部署在阿里云;靜態(tài)文件服務器采用的是Github page。

Github項目地址:https://github.com/vczero/OurTimes

線上體驗地址:http://vczero.github.io/tuban/main.html#/

沒圖說個球啊,上圖給大家看看2張截圖:

(1)首頁

(2)通訊錄

 ....更多去線上體驗...

三、項目

總項目: https://github.com/vczero/OurTimes

開發(fā)了所需要的服務:https://github.com/vczero/OurTimes/tree/master/server

開了web pc client: https://github.com/vczero/OurTimes/tree/master/client-web

開發(fā)了簡易的后臺管理系統(tǒng):https://github.com/vczero/OurTimes/tree/master/client-admin

歡迎大家fork ,follow和共享代碼,一起構建前端而努力。

四、附上web-pc端Angular的入口文件代碼

復制代碼 代碼如下:

var app = angular.module('app', ['ui.router', 'ngCookies']);
var SERVER_BASE_URL = 'http://127.0.0.1:3000/';
//初始化配置
app.run(['$rootScope', function($rootScope) {
    $rootScope.appName = '圖班網(wǎng)';
    $rootScope.desc = '基于位置的通訊錄';
    $rootScope.author = '鬼謠';
    $rootScope._email = 'wlhmyit@126.com';
}]);

//調用的服務列表
app.constant('ServiceConfig', {
    wei_content: SERVER_BASE_URL + 'wei/get',
    wei_zan: SERVER_BASE_URL + 'wei/zan',
    wei_comment: SERVER_BASE_URL + 'wei/comment',
    wei_create: SERVER_BASE_URL + 'wei/create',
    user_get: SERVER_BASE_URL + 'user/get',
    user_login: SERVER_BASE_URL + 'user/login',
    user_register: SERVER_BASE_URL + 'user/register',
    user_common: SERVER_BASE_URL + 'user/getCommon',
    user_ben: SERVER_BASE_URL + 'user/getBen',
    user_self: SERVER_BASE_URL + 'user/getSelf',
    user_common_update: SERVER_BASE_URL + 'user/updateCommon',
    user_ben_update: SERVER_BASE_URL + 'user/updateBen',
    user_ben_get_name: SERVER_BASE_URL + 'user/singleBen/name',
    user_common_get_nickname: SERVER_BASE_URL + 'user/getCommon/name',
    user_ben_get_realname: SERVER_BASE_URL + 'user/singleBen/name',
    wei_get_token_page: SERVER_BASE_URL + 'wei/getByToken',
    wei_delete: SERVER_BASE_URL + 'wei/delete',
    user_update_password: SERVER_BASE_URL + 'user/updatePassword',
    article_get: SERVER_BASE_URL + 'article/get',
    article_detail: SERVER_BASE_URL + 'article/get/id',
    amap_url: 'http://webapi.amap.com/maps?v=1.3&key=ad925c5003760094713775d64748d872&callback=init'
});
//JSON parse
app.config(['$httpProvider', function($httpProvider) {
    $httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
    $httpProvider.defaults.headers.put['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
    $httpProvider.defaults.transformRequest = [function(data) {
        var obj = [];
        for (var key in data) {
            obj.push(key + '=' + data[key]);
        }
        return obj.join('&');
    }];
}]);
//路由配置
app.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
    /*URL路由*/
    $urlRouterProvider.otherwise("/");
    /*狀態(tài)配置*/
    $stateProvider
    //首頁
    .state('index', {
        url: '/',
        views: {
            '': {
                templateUrl: 'views/index/index.html',
            },
            'header@index': {
                templateUrl: 'views/header.html',
                controller: 'HeaderController'
            },
            'footer@index': {
                templateUrl: 'views/footer.html',
                controller: ''
            },
            'weibo@index': {
                templateUrl: 'views/index/weibo.html',
                controller: 'WeiboController'
            },
            'article@index': {
                templateUrl: 'views/index/article.html',
                controller: 'ArticleController'
            },
            'post@index': {
                templateUrl: 'views/index/post.html',
                controller: 'PostWeiboController'
            }
        }
    })
    .state('login', {
        url: '/login',
        views: {
            '': {
                templateUrl: 'views/login/login.html',
                controller: 'LoginController'
            }
        }
    })
    .state('register', {
        url: '/register',
        views: {
            '': {
                templateUrl: 'views/register/register.html',
                controller: 'RegisterController'
            }
        }
    })
    .state('contacts', {
        url: '/contacts',
        views: {
            '': {
                templateUrl: 'views/contacts/contacts.html',
                controller: ''
            },
            'header@contacts': {
                templateUrl: 'views/header.html',
                controller: 'HeaderController'
            },
            'userinfo@contacts': {
                templateUrl: 'views/contacts/userinfo.html',
                controller: 'UserInfoController'
            },
            'map@contacts': {
                templateUrl: 'views/contacts/map.html',
                controller: 'MapController'
            },
            'search@contacts': {
                templateUrl: 'views/contacts/search.html',
                controller: 'SearchUserController'
            }
        }
    })
    .state('ucenter', {
        url: '/ucenter',
        views: {
            '': {
                templateUrl: 'views/ucenter/ucenter.html',
                controller: ''
            },
            'header@ucenter': {
                templateUrl: 'views/header.html',
                controller: 'HeaderController'
            },
            'userWeibo@ucenter': {
                templateUrl: 'views/ucenter/weibo.html',
                controller: 'UcWeiboController'
            },
            'userDetailInfo@ucenter': {
                templateUrl: 'views/ucenter/user.html',
                controller: 'UcUserController'
            },
            'footer@ucenter': {
                templateUrl: 'views/footer.html',
                controller: ''
            }
        }
    })
    .state('article', {
        url: '/article/:id',
        views: {
            '': {
                templateUrl: 'views/article/article.html',
                controller: ''
            },
            'header@article': {
                templateUrl: 'views/header.html',
                controller: 'HeaderController'
            },
            'article_content@article': {
                templateUrl: 'views/article/article_content.html',
                controller: 'ArticleDetailController'
            },
            'footer@article': {
                templateUrl: 'views/footer.html',
                controller: ''
            }
        }
    })
    .state('article_index', {
        url: '/article',
        views: {
            '': {
                templateUrl: 'views/article/article.html',
                controller: ''
            },
            'header@article_index': {
                templateUrl: 'views/header.html',
                controller: 'HeaderController'
            },
            'article_content@article_index': {
                templateUrl: 'views/article/article_content.html',
                controller: 'ArticleDetailController'
            },
            'footer@article_index': {
                templateUrl: 'views/footer.html',
                controller: ''
            }
        }
    });

}]);

相關文章

  • Egret引擎開發(fā)指南之運行項目

    Egret引擎開發(fā)指南之運行項目

    Egret Framework是一款使用TypeScript語言構建的開源免費的移動游戲框架。Egret Framework的核心定位是開放,高效,優(yōu)雅。通過它,你可以快速地創(chuàng)建HTML5類型的移動游戲,也可以將游戲項目編譯輸出成為目標移動平臺的原生游戲應用。
    2014-09-09
  • 解決Linux無法正常安裝與卸載Node.js的方法

    解決Linux無法正常安裝與卸載Node.js的方法

    最近在學習node.js,所以下面這篇文章主要給大家介紹了關于如何解決Linux無法正常安裝與卸載Node.js的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧。
    2018-01-01
  • 利用Chrome DevTools直接調試Node.js和JavaScript的方法詳解(并行)

    利用Chrome DevTools直接調試Node.js和JavaScript的方法詳解(并行)

    現(xiàn)在我們可以用瀏覽器調試node.js了!!!下面這篇文章主要介紹了利用Chrome DevTools直接調試Node.js和JavaScript的方法步驟,文中介紹的很詳細,需要的朋友可以參考學習,下面來一起看看吧。
    2017-02-02
  • 爬蟲利器Puppeteer實戰(zhàn)

    爬蟲利器Puppeteer實戰(zhàn)

    本文詳細的介紹了什么是Puppeteer以及使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01
  • nodejs 十六進制字符串型數(shù)據(jù)與btye型數(shù)據(jù)相互轉換

    nodejs 十六進制字符串型數(shù)據(jù)與btye型數(shù)據(jù)相互轉換

    這篇文章主要介紹了nodejs 十六進制字符串型數(shù)據(jù)與btye型數(shù)據(jù)相互轉換,需要的朋友可以參考下
    2018-07-07
  • 解決node修改后需頻繁手動重啟的問題

    解決node修改后需頻繁手動重啟的問題

    今天小編就為大家分享一篇解決node修改后需頻繁手動重啟的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • Electron 調用命令行(cmd)

    Electron 調用命令行(cmd)

    這篇文章主要介紹了Electron 調用命令行(cmd),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • 詳解nodejs微信公眾號開發(fā)——6.自定義菜單

    詳解nodejs微信公眾號開發(fā)——6.自定義菜單

    這篇文章主要介紹了詳解nodejs微信公眾號開發(fā)——6.自定義菜單,自定義菜單能夠幫助公眾號豐富界面,讓用戶更好更快地理解公眾號的功能。
    2017-04-04
  • 使用node.js半年來總結的 10 條經(jīng)驗

    使用node.js半年來總結的 10 條經(jīng)驗

    從3月初來到帝都某創(chuàng)業(yè)公司的服務器團隊實習,到現(xiàn)在已接近半年的時間。PS: 已轉正,服務器端用的 Node。
    2014-08-08
  • Node.js的Mongodb使用實例

    Node.js的Mongodb使用實例

    本篇文章主要介紹了Node.js的Mongodb使用實例,具有一定的參考價值,有興趣的可以了解一下。
    2016-12-12

最新評論