当前位置: 首页 > 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
http://www.lryc.cn/news/398446.html

相关文章:

  • 企业服务行业CRM解决方案
  • 服务器怎么进PE系统?
  • Linux内核编译与调试menuos-linux-3.18.6-在ubuntu20.04环境
  • java-mysql 三层架构
  • 打工人如何应对AI对工作岗位的风险
  • C++:从C语言过渡到C++
  • 在安卓中使用FFmpeg录制摄像头的视频并保存到本地MP4文件
  • Vue从零到实战第一天
  • BUUCTF - Basic
  • 如何理解Node.js?NPM?Yarn?Vue?React?
  • 苹果入局,AI手机或将实现“真智能”?
  • AI网络爬虫019:搜狗图片的时间戳反爬虫应对策略
  • Windows 网络重置及重置网络可能出现的问题( WIFI 没有了 / WLAN 图标消失)
  • 100 个网络基础知识普及,看完成半个网络高手!
  • 高盛开源的量化金融 Python 库
  • 【Linux】docker和docker-compose 区别是什么
  • Qt图片缩放显示
  • 47、lvs之DR
  • 分布式技术栈、微服务架构 区分
  • 【JavaEE精炼宝库】文件操作(2)——文件内容读写 | IO流
  • C++ 指针变量做参数传递时的情况分析
  • Linux环境下Oracle 11g的离线安装与配置历程
  • 上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)
  • 容器是线程不安全的,如果多线程下不加锁直接使用容器会发什么
  • 配置光源——笔记
  • Java---SpringBoot详解一
  • MFC扩展库BCGControlBar Pro v35.0 - 可视化管理主题等全新升级
  • Springboot 配置 log4j2 时的注意事项
  • 微服务-初级篇
  • 批量制作word表格