您的位置:首页 > 理论基础 > 计算机网络

Node.js应用构建---社交网络

2018-01-30 20:32 357 查看
   代码https://github.com/Swiftam/book-node-mongodb-backbone

    一个基本可用的社交网站让用户能够安全地认证、管理联系人、聊天,并查看实时更新。

    前端和后端两个互补的MVC系统。

1、目录结构

    分Node.js和Backbone.js

2、包定义

    package.json

{
    "name": "my-social-network",
    "version": "0.0.1",
    "private": true,
    "dependencies": {
      "express": "~3.0.0",
      "jade": ">= 0.0.1",
      "mongoose": ">= 2.6.5",
      "nodemailer": "0.3.20",
      "connect": ">= 1.9.1",
      "socket.io": "~0.9",
      "cookie": "0.0.4"
  }
}

3、网站服务器

|____config
| |____mail.example.js
|____public
| |____images
| | |____trafficlight.png
| |____js
| | |____boot.js
| | |____SocialNetSockets.js
| | |____router.js
| | |____SocialNetView.js
| | |____views
| | | |____chat.js
| | | |____chatsession.js
| | | |____contacts.js
| | | |____contact.js
| | | |____login.js
| | | |____forgotpassword.js
| | | |____register.js
| | | |____chatitem.js
| | | |____addcontact.js
| | | |____status.js
| | | |____profile.js
| | | |____index.js
| | |____SocialNet.js
| | |____models
| | | |____ContactCollection.js
| | | |____Contact.js
| | | |____StatusCollection.js
| | | |____Account.js
| | | |____Status.js
| | |____libs
| | | |____backbone.js
| | | |____text.js
| | | |____require.js
| | | |____jquery.js
| | | |____underscore.js
| |____templates
| | |____chatsession.html
| | |____contact.html
| | |____index.html
| | |____chatitem.html
| | |____forgotpassword.html
| | |____login.html
| | |____addcontact.html
| | |____profile.html
| | |____status.html
| | |____chat.html
| | |____contacts.html
| | |____register.html
| |____styles
| | |____styles.css
|____app.js
|____views
| |____resetPasswordSuccess.jade
| |____resetPassword.jade
| |____layout.jade
| |____index.jade
|____snippets
| |____login_connect.js
| |____account_contact.js
| |____README.md
| |____express_status.js
| |____event_login.js
| |____login_disconnect.js
| |____event_logout.js
|____package.json
|____routes
| |____chat.js
| |____authentication.js
| |____accounts.js
|____models
| |____Account.js

4、认证

   访问任何功能之前,需证明有权执行这项功能。

   账户:数据库字段包含email地址、口令、名字、图片、描述和简介。models/Account.js

   路由:视图与视图之间的导航。Backbone.js中Router类。如http://localhost:8080/#register。public/js/router.js

   身份验证:用户可能有两种状态:已通过验证和未经验证。需向Node后端发一个AJAX请求。验证当前由请求标头中的会话ID标识的会话,并将其与有效的访问令牌联系起来。

   通过检查session.loggedIn属性

   注册:用户姓名、电子邮件和口令。public/templates/register.html

   登录:授权访问。界面和处理程序

   忘记口令:模板和视图类

   重置口令

   整合

5、用户界面

   账户明细:用户自己查看并可修改,其他人可添加为好友

   联系人列表

   活动流:类似你的主页,突出联系人账户明细的变更。

   数据模型:非常关键

   整合

6、交朋友

   联系人列表:显示每个关系的最新和最顶层的信息,也提供一种方法来寻找新的联系人。

   添加联系人:能查看好友部分或完整信息。

   删除联系人:从双方的联系人列表中删除。

   评论:为你的联系人资料添加评论

   整合

7、聊天

   尽可能快地将一方的信息传递给另一方,不会让其他影响交流,如记录日志或数据库检索。

   重构

   连接到聊天服务器:发信息之前,需要认证和连接。Web socket在认证成功之后,就不再需要验证用户了。需加入socket.io和cookie库。

   发送和接收聊天消息:事件socket:char:start和socket:chat:in。如果接收到聊天消息,所有感兴趣的观察者就会知道他们需要开启一个session,并处理进入的消息。

   整合

8、实时互动

   增加自定义事件

   联系人登录通知

   状态更新

   整合
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: