基于node.js + express框架实现的简单服务端(一)

一、前言

最近在看node.js后端这部分的内容,学习了一段时间有些想法,写一写文章来记录,有些地方可能还存在问题,还望各位多多指正。
本系列的内容是从软件工具的安装到项目搭建,再到代码逻辑设计,最后到数据库管理和接口测试,会把服务端的开发流程整体的说一遍,会分为几篇文章去写各部分的内容,内容比较简单,适合新手学习了解。
本文用的开发语言是typescript,ts是JavaScript的超集,js拥有的特性ts都拥有,关于ts语言各位可以自行去学习。ts脚本直接运行比较麻烦,本文的处理方式是将ts脚本转换成js脚本来运行,至于为什么不直接用js来写,主要是因为个人觉得ts写起来比较快,也比较方便,还有本人之前用的是面向对象语言,近期开始看后端内容,js不太容易上手,而ts引入了面向对象的概念,上手比较容易,所以建议有面向对象底子的人可以从ts入手,这样比较容易,当然js也可以参考本文内容,毕竟两个语言基本一致。

二、安装工具

开发语言:Typescript,软件:VS Code。
Node.js官网下载地址:https://nodejs.org/zh-cn/download/
Express安装:当node安装完之后,直接在VSCode里面打开工程,在控制台里面输入
npm install express即可在项目里面添加express框架包。
MongoDB官网下载地址:https://www.mongodb.com/download-center/community 点击server,选择对应的版本下载安装即可,如下图。
在这里插入图片描述

三、项目结构

新建项目ServerTest,项目结构如下图,Models存放数据结构表,DBOperations存放数据库操作,Controllers控制中间件,Routers存放路由文件,app.ts接入exprss和连接数据库等初始化操作,sever.ts启动服务,主体结构就是这样,其他分类可根据自己需求来添加。
在这里插入图片描述

四、项目初始化

创建一个服务端项目需要进行初始化,在node开发中使用npm init会生成一个pakeage.json文件,这个文件主要是用来记录这个项目的详细信息的,它会将我们在项目开发中所要用到的包,以及项目的详细信息等记录在这个项目中。方便在以后的版本迭代和项目移植的时候会更加的方便。也是防止在后期的项目维护中误删除了一个包导致的项目不能够正常运行。使用npm init初始化项目还有一个好处就是在进行项目传递的时候不需要将项目依赖包一起发送给对方,对方在接受到你的项目之后再执行npm install就可以将项目依赖全部下载到项目里。
在项目中打开控制台,直接执行npm init,执行了npm init之后,会让我们填写一些配置信息,如果还不知道怎么填写的话可以一路回车,截图如下:
在这里插入图片描述

五、编写脚本

1.编写app.ts文件

app.ts脚本主要是来实现一些服务的初始化操作,像数据库的连接,路由的初始化等等。
1)导入相关包
在控制台输入如下指令:
npm install express ,在工程里导入express框架包
npm install mongoose, Mongoose是在node.js异步环境下对MongoDB进行便捷操作的对象模型工具,官方链接http://www.mongoosejs.net。
2)在脚本里引用工具包

import * as express from 'express';
import * as mongoose from 'mongoose';

3)连接数据库
写一个APP的类,再写一个连接数据库的方法mongoCon,在类的构造函数里面去初始化数据库的连接操作,具体代码如下:

class App {    
    mongoUrl: string = 'mongodb://localhost:27017/serverTest';

    constructor() {
        this.mongoCon();
    }

    private mongoCon = () => {
        mongoose.connect(this.mongoUrl, { useNewUrlParser: true, useCreateIndex: true, useUnifiedTopology: true, useFindAndModify: false })
            .then(() => {
                console.log("MongoDB connection success!");
            })
            .catch((error) => {
                console.log('MongoDB connection faile, the error is :' + error);
            });
    }

4)导出app模块
创建express的实例对象

app: express.Application = express();

在脚本末尾导出模块

export default new App().app;

这样就可以在其他脚本里面引用app模块。

2.编写server.ts脚本

Server.ts脚本主要是服务启动的地方。
首先需要导入刚才写好的app模块

import app from './app';

app是app.ts脚本末尾导出的对象,from后面的是app.ts脚本的目录路径,”./”表示是在同级目录下,”../”表示是在上一级目录下。
接下来是服务监听的端口号设置,本文的端口号是8888,监听代码如下:

app.listen(8888, () => {
    console.log('Server running at http://localhost:8888');
});

这样基本需要的代码就写完了,接下来就是启动服务。

六、启动服务

首先需要将ts脚本转换成js脚本,详情可参考这篇文章 https://www.cnblogs.com/yasepix/p/9294491.html
在VSCode编辑器里面,如下图打开终端菜单,再点击运行任务,找到tsConfig.json文件运行,这样编辑器会时刻监听你的脚本文件,当你每次进行Crtl+S保存操作时,如果代码有错误则会在控制台显示错误信息,如果没有错误则会自动将ts脚本转换成js脚本,很方便。
在这里插入图片描述
在这里插入图片描述
转换完成之后,命令行进入项目根目录的dist文件下,并运行node server.js命令,出现如下图显示,则表示服务已成功启动。
在这里插入图片描述
本文到此结束,主要写的是一些准备工作和项目基础内容,有问题可以留言,我们一起讨论,接下来会写数据库的基础操作内容,文章后续会更新。

服务端完整的工程压缩包在本系列最后一篇末尾有下载链接,各位可以根据需要去下载,谢谢支持。

猜你喜欢

转载自blog.csdn.net/m0_37857819/article/details/105211756