1. Reden
Eines Tages sagte der Klassenmonitor, dass die Schüler wollten, dass ich ein Adressbuch entwickelte, das den Ort teilen könnte, sodass sie einfach die Funktion selbst gestaltet haben. Einbeziehung von Benutzerrollen, Posten auf Weibo, Freigabe von Standorten usw. Diesmal war ich etwas egoistisch. Um meine kürzlich angesehenen AngularJs auszuüben, habe ich die Lösung des Knotens + MongoDB + Angular.js entschieden ausgewählt. Natürlich wird die Erfahrung der Entwicklung von Node.js immer tiefer. Denken Sie daran, letztes Jahr sagte mir der Anführer, dass ich versuchen sollte, jeden Dienst der Knoten -Unterstützung nur eine Geschäftsfunktion zu ermöglichen, damit es bequemer ist, sie zu warten. Zu dieser Zeit wollte ich unbedingt einen Knotenservice sehr leistungsfähig machen. Jetzt scheint es, dass der Ansatz des Anführers korrekt ist, und ich ziehe es vor, die Knoten -Service -Funktionen herauszulassen ...
2. Laden Sie die Trockenwaren direkt hoch hoch hoch
Der Datenbankdienst wird in Alibaba Cloud bereitgestellt. Der statische Dateiserver verwendet die GitHub -Seite.
GitHub -Projektadresse: https://github.com/vczero/ourtimes
Online -Erlebnisadresse: http://vczero.github.io/tuban/main.html#/
Ich habe kein Bild, um einen Ball zu sagen. Lassen Sie mich Ihnen zwei Screenshots zeigen:
(1) Homepage
(2) Adressbuch
...... mehr Erfahrung online ...
III. Projekt
Gesamtprojekt: https://github.com/vczero/ourtimes
Entwickelt die erforderlichen Dienste: https://github.com/vczero/ourtimes/tree/master/server
Öffnen Sie den Web-PC-Client: https://github.com/vczero/ourtimes/tree/master/client-web
Es wurde ein einfaches Backend-Management-System entwickelt: https://github.com/vczero/ourtimes/tree/master/client-admin
Jeder ist herzlich eingeladen, Code zu geben, zu folgen und zu teilen, um zusammenzuarbeiten, um das Front-End zu erstellen.
4. Fügen Sie den Eintragsdateicode des Web-PC-Terminals Angular bei
Die Codekopie lautet wie folgt:
var app = angular.module ('app', ['ui.router', 'ngcookies']);
var server_base_url = 'http://127.0.0.1:3000/';
// Initialisieren Sie die Konfiguration
app.run (['$ rootscope', Funktion ($ rootscope) {
$ rootscope.appname = 'tuban.com';
$ rootscope.desc = 'standortbasiertes Adressbuch';
$ rootscope.Author = 'Ghost -Gerücht';
$ rootscope._email = '[email protected]';
}]);
// Überprüfte Dienstliste
app.constant ('serviceConfig', {
Wei_Content: server_base_url + 'Wei/get',,
Wei_zan: server_base_url + 'wei/zan',
Wei_Comment: server_base_url + 'Wei/Kommentar',
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 + 'userben/name',
user_common_get_nickname: server_base_url + 'user/getCommon/name',
user_ben_get_realname: server_base_url + 'userBen/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', Funktion ($ 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 = [Funktion (Daten) {
var obj = [];
für (var Schlüssel in Daten) {
obj.push (Schlüssel + '=' + Daten [Schlüssel]);
}
return obj.join ('&');
}];
}]);
// Routing -Konfiguration
app.config (['$ stateProvider', '$ urlrouterProvider',
Funktion ($ stateProvider, $ urlrouterProvider) {
/*URL -Routing*/
$ urlrouterProvider.Otherwise ("/");
/*Statuskonfiguration*/
$ stateProvider
// Titelseite
.State ('Index', {
URL: '/',
Ansichten: {
'': {
Templateurl: 'Ansichten/index/index.html',
},
'Header@index': {
Templateurl: 'Ansichten/Header.html',
Controller: 'Headercontroller'
},
'footer@index': {
Templateurl: 'Ansichten/Fußzeile.html',
Controller: ''
},
'wibo@index': {
Templateurl: 'Ansichten/Index/Weibo.html',
Controller: 'Weiibocontroller'
},
'Artikel@index': {
templateurl: 'Ansichten/index/article.html',
Controller: 'Articlecontroller'
},
'post@index': {
templateurl: 'Ansichten/index/post.html',
Controller: 'postWeibocontroller' '
}
}
})
.State ('Login', {
URL: '/Login',
Ansichten: {
'': {
templateurl: 'Ansichten/Login/login.html',
Controller: 'Logincontroller'
}
}
})
.State ('Register', {
URL: '/Register',
Ansichten: {
'': {
Templateurl: 'Ansichten/Register/Register.html',
Controller: 'RegisterController'
}
}
})
.State ('Kontakte', {
URL: '/Kontakte',
Ansichten: {
'': {
templateurl: 'Ansichten/Kontakte/contacts.html',
Controller: ''
},
'Header@Kontakte': {
Templateurl: 'Ansichten/Header.html',
Controller: 'Headercontroller'
},
'userInfo@contacts': {
Templateurl: 'Ansichten/Kontakte/userInfo.html',
Controller: 'userInfocontroller'
},
'map@contacts': {{
templateurl: 'Ansichten/Kontakte/map.html',
Controller: 'MapController'
},
'such@contacts': {
templateurl: 'Ansichten/Kontakte/Search.html',
Controller: 'SearchuSerController'
}
}
})
.State ('uCenter', {
URL: '/uCenter',
Ansichten: {
'': {
templateurl: 'Ansichten/uCenter/Ucenter.html',
Controller: ''
},
'Header@Ucenter': {
Templateurl: 'Ansichten/Header.html',
Controller: 'Headercontroller'
},
'userWeibo@uCenter': {
Templateurl: 'Ansichten/uCenter/wibo.html',
Controller: 'Ucweibocontroller'
},
'userDetailInfo@uCenter': {
templateurl: 'Ansichten/uCenter/user.html',
Controller: 'UcuSercontroller'
},
'footer@uCenter': {
Templateurl: 'Ansichten/Fußzeile.html',
Controller: ''
}
}
})
.State ('Artikel', {
URL: '/article/: id',,
Ansichten: {
'': {
Templateurl: 'Ansichten/Artikel/article.html',
Controller: ''
},
'Header@article': {
Templateurl: 'Ansichten/Header.html',
Controller: 'Headercontroller'
},
'article_content@article': {
Templateurl: 'Ansichten/Artikel/article_content.html',
Controller: 'ArticledetailController'
},
'footer@article': {
Templateurl: 'Ansichten/Fußzeile.html',
Controller: ''
}
}
})
.State ('article_index', {
URL: '/Artikel',
Ansichten: {
'': {
Templateurl: 'Ansichten/Artikel/article.html',
Controller: ''
},
'Header@acies_index': {
Templateurl: 'Ansichten/Header.html',
Controller: 'Headercontroller'
},
'article_content@acies_index': {
Templateurl: 'Ansichten/Artikel/article_content.html',
Controller: 'ArticledetailController'
},
'footer@acies_index': {
Templateurl: 'Ansichten/Fußzeile.html',
Controller: ''
}
}
});
}]);