前端需要去了解的nodejs知识(express应用搭建)

简介: 这是一个使用typescript和express的应用框架,快速搭建服务端项目。主要模块可以拆分为入口、路由、数据、工具、服务、业务。

网络异常,图片无法展示
|


前言


这是一个使用typescript和express的应用框架,快速搭建服务端项目。主要模块可以拆分为入口、路由、数据、工具、服务、业务。

  • 应用整体入口:对整个应用的一个初始化化
  • 路由模块:路由的注册
  • 数据库模块:数据库连接,Model定义
  • 业务功能模块:对应业务模块的逻辑处理
  • 公共服务模块:提供一些公共服务,如邮件发送、excel处理等
  • 帮助模块:一些工具函数,日志处理,以及环境变量

模块


此框架用到的基础依赖如下:

  • typescript
  • eslint:代码格式校验
  • node/ts-node: 动态编译typescript代码
  • nodemon:监听文件变化重启服务
  • mongoose:数据库连接
  • pm2:生产环境部署,方便服务的重启,以及在线日志的查看

入口

入口文件主要是对整个应用的一个初始化化,包括以下内容:

  • 初始化数据库:引入数据模块,进行数据库连接。
  • 初始化应用成中间件:使用app.use()注册全局中间件
  • 初始化路由:引入路由模块,以及路由404捕获。
  • 全局异常捕获: 在文件的最后注册错误捕获中间件函数。
import express from 'express';
import config from './helper/config';
// 数据库初始化
import './database/mongo';
const app = express();
app.use(express.json());
//文档地址
app.use('/documents',express.static(__dirname+'/documents'))
// 404路由捕获
app.get('*', function (req, res) {
  console.log('Not Found');
  res.sendStatus(404);
});
// 全局错误处理
app.use((err, req, res, next) => {
  if (res.headersSent) {
    return next(err);
  }
  res.status(500);
  res.render('error', { error: err });
});
****

帮助文件

  • 全局的环境配置:数据库host、port,应用的host,一些其他和环境相关的配置
  • 日志处理,使用nodejs的插件log4js来处理日志,将日志按日期和类型保存在不同的文件中
  • 工具函数,定义一些全局的工具函数
  • 中间件,定义一些应用层面的中间件

路由

路由是整个express项目的骨架,从路由的定义中应该能够看出整个项目的业务结构。

  • 路由注册,根据业务需求定义路由路径
  • 路由嵌套根据业务拆分不同路由模块定义在不同的文件中,路由嵌套的设计在express是我们对大型项目解耦的最优方式。
//user.ts
const express = require('express');
const router = express.Router();
const app = express();
router.get('/list',(req,res,next)=>{
});
router.post('/info',(req,res,next)=>{
});
export default router
import express from 'express';
import userRouter from './user';
const router = express.Router();
router.use('/user',userRouter);
router.get('/demo',(req,res,next)=>{
});
export default router

数据库

  • 数据库连接,通过mongoose与数据库创建连接
import mongoose from "mongoose";
import config from '../helpper/config';
const env = process.env.NODE_ENV;
const url = `${config[env].mongo_host}:${config[env].mongo_port}`
mongoose.connect(url,***)
******
  • 数据模型定义,业务对应的数据模型定义

业务模块

拆分不同的业务模块文件,用来处理客户端的请求

import userModel from '../database/model/user';
const createUser = (req,res,next)=>{
        *******
}
export default {createUser,***}

开发及部署


本地开发

  • 安装应用的npm依赖后可通过运行npm run start
pnpm install
npm run start
  • 设置环境变量,使用插件nodemon和ts-node来启动服务(监听文件变化重启服务)
set NODE_ENV=dev&&nodemon --watch *.ts --exec \"ts-node\" index.ts

生产部署

  • 全局安装pm2
pnpm install pm2 -g
  • 编译typescript代码并设置环境变量
  • 使用pm2启动服务
set NODE_ENV=pro&& pm2 start ./dist/index.js

总结


为了方便日后的开发,根据自己几年express的使用经验对整个应用框架进行的整理。按照高内聚,低耦合的标准进行功能模块和目录的拆分。有兴趣的可以一起维护下,目前准备发到npm。

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
10月前
|
JavaScript 前端开发
如何减少Node.js应用中的全局变量?
如何减少Node.js应用中的全局变量?
486 133
|
10月前
|
监控 负载均衡 JavaScript
有哪些有效的方法可以优化Node.js应用的性能?
有哪些有效的方法可以优化Node.js应用的性能?
489 69
|
7月前
|
存储 监控 JavaScript
基于布隆过滤器的 Node.js 算法在局域网电脑桌面监控设备快速校验中的应用研究
本文探讨了布隆过滤器在局域网电脑桌面监控中的应用,分析其高效空间利用率、快速查询性能及动态扩容优势,并设计了基于MAC地址的校验模型,提供Node.js实现代码,适用于设备准入控制与重复数据过滤场景。
277 0
|
6月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
371 3
|
10月前
|
监控 算法 JavaScript
公司局域网管理视域下 Node.js 图算法的深度应用研究:拓扑结构建模与流量优化策略探析
本文探讨了图论算法在公司局域网管理中的应用,针对设备互联复杂、流量调度低效及安全监控困难等问题,提出基于图论的解决方案。通过节点与边建模局域网拓扑结构,利用DFS/BFS实现设备快速发现,Dijkstra算法优化流量路径,社区检测算法识别安全风险。结合WorkWin软件实例,展示了算法在设备管理、流量调度与安全监控中的价值,为智能化局域网管理提供了理论与实践指导。
257 3
|
存储 缓存 监控
如何使用内存监控工具来优化 Node.js 应用的性能
需要注意的是,不同的内存监控工具可能具有不同的功能和特点,在使用时需要根据具体工具的要求和操作指南进行正确使用和分析。
668 158
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
655 159
|
监控 JavaScript 算法
如何使用内存监控工具来定位和解决Node.js应用中的性能问题?
总之,利用内存监控工具结合代码分析和业务理解,能够逐步定位和解决 Node.js 应用中的性能问题,提高应用的运行效率和稳定性。需要耐心和细致地进行排查和优化,不断提升应用的性能表现。
682 174
|
11月前
|
前端开发 JavaScript NoSQL
使用 Node.js、Express 和 React 构建强大的 API
本文详细介绍如何使用 Node.js、Express 和 React 构建强大且动态的 API。从开发环境搭建到集成 React 前端,再到利用 APIPost 高效测试 API,适合各水平开发者。内容涵盖 Node.js 运行时、Express 框架与 React 库的基础知识及协同工作方式,还涉及数据库连接和前后端数据交互。通过实际代码示例,助你快速上手并优化应用性能。
|
12月前
|
资源调度 JavaScript 前端开发
前端开发必备!Node.js 18.x LTS保姆级安装教程(附国内镜像源配置)
本文详细介绍了Node.js的安装与配置流程,涵盖环境准备、版本选择(推荐LTS版v18.x)、安装步骤(路径设置、组件选择)、环境验证(命令测试、镜像加速)及常见问题解决方法。同时推荐开发工具链,如VS Code、Yarn等,并提供常用全局包安装指南,帮助开发者快速搭建高效稳定的JavaScript开发环境。内容基于官方正版软件,确保合规性与安全性。
11805 23