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

使用Node.js 框架( Express.js)来创建一个简单的 API 端点

文章目录

  • 使用Node.js 框架( Express.js)来创建一个简单的 API 端点
    • 什么是express
    • 安装
    • 修改代码 express 自动刷新

使用Node.js 框架( Express.js)来创建一个简单的 API 端点

什么是express

Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。

许多流行的开发框架都基于Express 构建。

1、基本概念
在 Express 中,有几个核心概念需要了解:

  • Application:应用程序对象,它是 Express 框架创建的实例。
  • Request:请求对象,它包含了客户端请求的所有信息,例如 URL、HTTP 方法、头信息等。
  • Response:响应对象,它包含了将要发送给客户端的信息,例如响应状态码、头信息、响应体等。
  • Middleware:中间件是一种可复用的代码,它可以处理请求和响应。中间件可以执行各种任务,例如路由处理、身份验证、日志记录等。

2、核心功能
Express 的核心功能包括:

  • 路由:Express 提供了一种方便的方式来定义路由,可以处理不同的 URL 路径和 HTTP 方法。
  • 中间件:Express 支持各种中间件,可以用于处理请求和响应。
  • 模板引擎:Express 支持各种模板引擎,可以用于创建动态页面。
  • 数据库操作:Express 可以方便地进行数据库操作,例如查询、插入、更新等。
  • 错误处理:Express 提供了一种方便的方式来处理错误,可以统一处理异常和错误。

安装

在你新建的目录下安装 Express

npm install express --save

修改代码 express 自动刷新

思路:使用 nodemon 自动重启。
Nodemon 是一个帮助开发基于 Node.js 的应用程序的工具,它可以在检测到目录中的文件变更时自动重新启动节点应用程序。
官方链接:https://github.com/remy/nodemon

监控node.js应用程序中的任何更改并自动重新启动服务器 - 非常适合开发

安装到本地

npm install --save-dev nodemon

修改 package.json,增加 dev 命令,使用 nodemon 启动,其它都不用改

{..."scripts": {"dev": "nodemon src/main.js","start": "node src/main.js"}...
}

配置好后,使用 npm run dev 启动服务,nodemon 会检测文件改动自动重启服务器,这样你不用再频繁的重启服务。

如果你需要排除一些文件的监控,比如仅检测 src 目录下的 js 文件,并忽略测试代码,可以添加 nodemon 的配置文件 nodemon.json

{"watch": ["src/"],"ext": "js","ignore": ["*.test.js", "*.spec.js"]
}

也可以使用命令行参数:

  • –watch 监视多个目录
    默认情况下,nodemon 监视当前工作目录。如果要控制该选项,请使用该 --watch 选项添加特定路径:
nodemon --watch app --watch libs app/server.js

现在,只有当 ./app or ./libs 目录中有更改时,nodemon 才会重新启动。默认情况下,nodemon 将遍历子目录,因此无需显式包含子目录。

  • –ext 指定扩展监视列表
    nodemon -e js,pug nodemon 将对扩展名为 .js , .pug 进行任何更改时重新启动。
  • –ignore 忽略文件
    默认情况下,nodemon 只会在 .js JavaScript 文件更改时重新启动。在某些情况下,您需要忽略某些特定的文件、目录或文件模式,以防止 nodemon 过早地重新启动您的应用程序。
nodemon --ignore lib/ --ignore tests/

或者可以忽略特定文件:

nodemon --ignore lib/app.js

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring Boot与Traefik的集成
  • WPS+Python爬取百度之星排名
  • JCR一区 | Matlab实现GAF-PCNN-MATT、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断
  • CosyVoice - 阿里最新开源语音克隆、文本转语音项目 支持情感控制及粤语 本地一键整合包下载
  • 蚓链实践告诉你“企业确保达成数字化营销效果的方法”
  • python安装PyTorch+cuda
  • Electron开发 - 如何在主进程Main中让node-fetch使用系统代理
  • C++11中新特性介绍-之(二)
  • uniapp+python使用临时签名上传腾讯云oss对象储存方案
  • 脑干出血:揭秘其成因、症状与治疗方法
  • 【C#】函数方法、属性分文件编写
  • 尚品汇-(十四)
  • 个人IP如何做好定位?
  • 基于SpringBoot的休闲娱乐代理售票系统
  • 稀疏之美:在Mojo模型中实现特征的稀疏表示
  • #Java异常处理
  • 【技术性】Search知识
  • 2017前端实习生面试总结
  • Apache Zeppelin在Apache Trafodion上的可视化
  • jquery cookie
  • Puppeteer:浏览器控制器
  • select2 取值 遍历 设置默认值
  • SSH 免密登录
  • Swoft 源码剖析 - 代码自动更新机制
  • Vue2.x学习三:事件处理生命周期钩子
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 简单数学运算程序(不定期更新)
  • 警报:线上事故之CountDownLatch的威力
  • 聚类分析——Kmeans
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 前端js -- this指向总结。
  • 前端技术周刊 2019-02-11 Serverless
  • 使用parted解决大于2T的磁盘分区
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 【云吞铺子】性能抖动剖析(二)
  • Java总结 - String - 这篇请使劲喷我
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​​​​​​​STM32通过SPI硬件读写W25Q64
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # wps必须要登录激活才能使用吗?
  • $nextTick的使用场景介绍
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (39)STM32——FLASH闪存
  • (C#)一个最简单的链表类
  • (C++20) consteval立即函数
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (超详细)语音信号处理之特征提取
  • (二)斐波那契Fabonacci函数
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。