当前位置: 首页 > web >正文

NodeJS Express 静态文件、中间件、路由案例

NodeJS Express

Express,构建在Node.js平台上的Web开发框架,通过中间件机制和路由系统简化了HTTP服务器的创建流程。支持快速搭建RESTful API服务,提供模板引擎整合功能,并能够与Azure Functions等云服务平台进行集成。作为MEAN技术栈的核心组件之一,Express是Web开发领域最受欢迎的Node.js框架。

Express 5.0 requires Node.js 18 or higher. 参考文档:https://www.expressjs.com.cn/5x/api.html

初始化项目:npm init -y

安装依赖:npm install express@5.1.0,卸载依赖:npm uninstall express

Express 代码

const express = require('express')
const app = express()// 中间件
const middleware = function (req, res, next) {console.log(req.path, "中间件函数.");req.time = Date.now()next();
}
app.use(middleware);// 静态文件
const options = {dotfiles: 'ignore',etag: false,extensions: ['htm', 'html', 'png'],index: false,maxAge: '1d',redirect: false,setHeaders(res, path, stat) {res.set('x-timestamp', Date.now())}
};
app.use(express.static('public', options));// 请求处理
app.get('/', (req, res) => {res.send('hello world -> ' + req.time);
})
app.all('/all', function (req, res) {res.send('all -> ' + req.time);
});// admin
const admin = express()
// 当子程序被挂载到父程序时,mount事件被发射
admin.on('mount', (parent) => {console.log('Admin Mounted')console.log(parent)
})
admin.get('/', (req, res) => {console.log(admin.mountpath)res.send('Admin Homepage');
})
app.use(['/admin', '/manag*r'], admin)// 路由
const router = express.Router()
router.get('/info/:id', (req, res, next) => {console.log(req.params.id)res.send('router. -> ' + req.time);
})
app.use('/user', router)// 
const port = 3000;
app.listen(port, () => {console.log("http server running at http://127.0.0.1:" + port);
})

http://www.xdnf.cn/news/15610.html

相关文章:

  • 手撕Spring底层系列之:IOC、AOP
  • java操作Excel两种方式EasyExcel 和POI
  • 跟着Carl学算法--回溯【2】
  • React Hooks 数据请求库——SWR使用详解
  • Spring AI 系列之十四 - RAG-ETL之一
  • Vue3+Ts实现父子组件间传值的两种方式
  • Unity Android Logcat插件 输出日志中文乱码解决
  • 小白成长之路-Elasticsearch 7.0 配置
  • BNN 技术详解:当神经网络只剩下 +1 和 -1
  • 基于redis的分布式锁 lua脚本解决原子性
  • 免杀学习篇(1)—— 工具使用
  • 网页源码保护助手 海洋网页在线加密:HTML 源码防复制篡改,密文安全如铜墙铁壁
  • 基于华为欧拉系统安装FileGator文件管理器
  • 【Android】日志的使用
  • 深度学习中的激活函数:从原理到 PyTorch 实战
  • python 基于 httpx 的流式请求
  • 场景设计题+智力题
  • [Science]论文 视黄素与细胞修复
  • C++回顾 Day7
  • PyCharm 高效入门指南:从安装到效率倍增
  • [面试] 手写题-对象数组根据某个字段进行分组
  • 学习嵌入式的第二十八天-数据结构-(2025.7.15)进程和线程
  • P3842 [TJOI2007] 线段
  • Web攻防-PHP反序列化字符逃逸增多减少成员变量属性解析不敏感Wakeup绕过
  • 高等数学强化——导学
  • Android中Launcher简介
  • deepseekAI对接大模型的网页PHP源码带管理后台(可实现上传分析文件)
  • ASP .NET Core 8结合JWT轻松实现身份验证和授权
  • SpringBoot 实现 Redis读写分离
  • “C21988-谷物烘干机(2D+3D+说明书+运动仿真)8张cad+设计说明书