在本教程中,我将向您展示如何使用node.js、socket.io和mongodb实现一个实时聊天应用程序,然后我们将该应用程序一起部署到modulus。
首先,让我向您展示我们将在文章末尾看到的应用程序的最终外观。
Node.js将成为应用程序的核心,Express作为MVC,MongoDB作为数据库,Socket。IO用于实时通信。完成后,我们将把应用程序部署到Modulus。MongoDB部分实际上存在于Modulus内部。
1.场景
- John想要使用我们的应用程序,并在浏览器中打开它。
- 在第一页上,他选择聊天期间使用的昵称,然后登录聊天。
- 他在文本区域中写了一些内容,然后按Enter。
- 文本将发送至RESTful服务(Express),并将该文本写入MongoDB。
- 在MongoDB中写入之前,相同的文本将广播给当前登录聊天应用的用户。
如您所见,这是一个非常简单的应用程序,但它几乎涵盖了Web应用程序的所有内容。该应用程序中没有频道系统,但您可以fork源代码并实现频道模块进行练习。
2.从头开始进行项目设计
我将尝试先解释该项目的各个小部分,然后在最后将它们组合起来。我将从后端开始到前端。那么,让我们从域对象(MongoDB模型)开始。
2.1。型号
对于数据库抽象,我们将使用Mongoose。在这个项目中,我们只有一个模型,名为Message。这个消息模型只包含text,createDate, 和作者。作者没有像User这样的模型,因为我们不会完全实现用户注册/登录系统。将会有一个简单的昵称提供页面,并且该昵称将被保存到cookie中。这将在Message模型中用作author字段中的文本。您可以在下面看到一个示例JSON模型: