Node【Express框架【二】】

简介: Node【Express框架【二】】

🌟前言

哈喽小伙伴们,新的专栏 Node 已开启;这个专栏里边会收录一些Node的基础知识和项目实战;今天我们带领大家初识一下 Express框架 ;让我们一起来看看吧🤘


🌟中间件

Express 是一个路由和中间件组成的Web框架。


中间件是排列到管道中的处理程序,用于处理请求和响应。


21.png

21.png

🌟中间件函数

🌟什么是中间件函数

Express 应用程序本质上是一系列中间件函数调用。


中间件函数是可以访问请求对象 (req)、响应对象(res) 和next应用程序请求-响应周期中的函数的函数。该next函数是 Express 路由器中的一个函数,当被调用时,它会在当前中间件之后执行中间件。

function (req, res, next) {
    // 通过req操作请求对象
    // 通过res操作响应对象
    next() // 调用next()函数,可以调用下一个中间件
}

🌟中间件函数可以做什么

中间件函数可以执行以下任务:


执行任何代码。

更改请求和响应对象。

结束请求-响应周期。

调用堆栈中的下一个中间件。

中间件就是处理HTTP请求的函数,用来完成各种特定的任务,比如:


检查用户是否登录

添加公共方法。


🌟Express中间件的类型

如果当前中间件函数没有结束请求-响应循环,它必须调用next()以将控制权传递给下一个中间件函数。否则,请求将被挂起。


Express 应用程序可以使用以下类型的中间件:


应用级中间件

路由器级中间件

错误处理中间件

内置中间件

第三方中间件


🌟应用级中间件

在Express程序中,使用 app.use() 和 app.METHOD() 方法将中间件绑定到应用程序对象(app)。

在 Express 程序中,通过调用 app.use() 向管道中插入中间件。

var express = require('express')
var app = express()
app.use(function (req, res, next) {
    console.log('Time:', Date.now())
    next()
})

在 Express 程序中,通过调用 app.METHOD(PATH,MiddleWare,…,HANDLER) 向管道中插入中间件。

app.get('/user', function (req, res, next) {
    console.log('Request URL:', req.originalUrl)
    next()
}, function (req, res, next) {
    res.send('USER')
})

🌟路由器级中间件

**路由器级中间件的工作方式与应用级中间件相同,只是它绑定到 express.Router() **

var router = express.Router()

使用router.use()和router.METHOD()函数绑定路由器级中间件。

var express = require('express')
var app = express()
var router = express.Router()
router.use(function (req, res, next) {
    console.log('Time:', Date.now())
    next()
})
router.get('/user/:id', function (req, res, next) {
    console.log('Request URL:', req.originalUrl)
    next()
}, function (req, res, next) {
    console.log('Request Type:', req.method)
    next()
})

🌟错误处理中间件

与其他中间件函数相同的方式定义错误处理中间件函数,但是使用四个参数(err, req, res, next):

app.use(function (err, req, res, next) {
  console.error(err.stack)
  res.status(500).send('Something broke!')
})

🌟内置中间件

Express 具有以下内置中间件功能:


express.static提供静态资源,例如 HTML 文件、图像等。

express.json使用 JSON 有效负载解析传入请求。注意:可用于 Express 4.16.0+

express.urlencoded解析带有 URL 编码负载的传入请求。 注意:可用于 Express 4.16.0+

🌟静态资源托管 express.static 中间件

express.static 是 Express 内置的一个中间件,负责托管 Express 应用内的静态资源。如果要在网页中加载静态文件(css、js、img),就需要另外指定一个存放静态文件的目录


项目目录下添加一个存放静态文件的目录为 public

在public目录下在添加三个存放 js 、 css 、 img 的目录,把相关文件放到相应的目录下

当浏览器发出文件请求时,服务器端就会到这个目录下去寻找相关文件

app.use(express.static(require('path').join(__dirname, 'public')));

🌟第三方中间件

🌟cookie-parser

npm install --save cookie-parser
app.use(require(cookie-parser)(秘钥放在这里);)

提供对 cookie 的支持。

🌟express-session

npm install --save express-session
app.use(require(express-session)());)

提供会话 ID(存在 cookie 里)的会话支持。默认存在内存里,不适用于生产环境,并且可以配置为使用数据库存储。

🌟Express应用生成器

通过应用生成器工具 express-generator 可以快速创建一个应用的骨架。


🌟安装应用生成器

你可以通过 npx (包含在 Node.js 8.2.0 及更高版本中)命令来运行 Express 应用程序生成器(无需安装)。

$ npx express-generator

对于较老的 Node 版本,请通过 npm 将 Express 应用程序生成器安装到全局环境中并使用:

$ npm install express-generator -g

-h 选项可以列出所有可用的命令行选项:

$ express -h
  Usage: express [options] [dir]
  Options:
        --version        output the version number
    -e, --ejs            add ejs engine support
        --pug            add pug engine support
        --hbs            add handlebars engine support
    -H, --hogan          add hogan.js engine support
    -v, --view <engine>  add view <engine> support (dust|ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade)
        --no-view        use static html instead of view engine
    -c, --css <engine>   add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css)
        --git            add .gitignore
    -f, --force          force on non-empty directory
    -h, --help           output usage information

🌟基本使用

例如,如下命令创建了一个名称为 myapp 的 Express 应用。此应用将在当前目录下的 myapp 目录中创建,并且设置为使用 ejs 模板引擎(view engine):

$ express --view=ejs myapp       
**或者简写**
$ express -e myapp
  warning: option `--ejs' has been renamed to `--view=ejs'
   create : myapp/
   create : myapp/public/
   create : myapp/public/javascripts/
   create : myapp/public/images/
   create : myapp/public/stylesheets/
   create : myapp/public/stylesheets/style.css
   create : myapp/routes/
   create : myapp/routes/index.js
   create : myapp/routes/users.js
   create : myapp/views/
   create : myapp/views/error.ejs
   create : myapp/views/index.ejs
   create : myapp/app.js
   create : myapp/package.json
   create : myapp/bin/
   create : myapp/bin/www
   change directory:
     $ cd myapp
   install dependencies:
     $ npm install
   run the app:
     $ DEBUG=myapp:* npm start

然后安装所有依赖包:

$ cd myapp
$ npm install

启动这个应用(MacOS 或 Linux 平台):

$ DEBUG=myapp:* npm start

Windows 平台使用如下命令:

set DEBUG=myapp:* & npm start

然后在浏览器中打开 http://localhost:3000/ 网址就可以看到这个应用了。

🌟目录结构

/
├── app.js                              入口文件
├── bin
│   └── www
├── views                               # 存放视图文件 如jade,ejs,html等
│   ├── admin                           # 后台视图文件
│   │   ├── login.html
│   │   └── reg.html              
│   └── index                           # 前台视图文件
│       ├── index.html
│       ├── header.html
│       └── footer.html
├── controllers/                        # 控制器文件
├── models/                             # 模型文件
├── routes                              # 存放路由文件
│   ├── index.js                       
│   └── user.js                       
├── public                              # 存放image , css , js 等静态文件
│   ├── images/
│   ├── css/
│   └── js/
├── node_modules                        # 存放npm包  
└── package.json                        # npm包配置文件,工程信息以及模块依赖

🌟写在最后

更多Node知识以及API请大家持续关注,尽请期待。各位小伙伴让我们 let’s be prepared at all times!

目录
相关文章
|
3月前
|
存储 缓存 JavaScript
node 框架
Node 框架以其独特的优势和广泛的应用场景,成为了现代 Web 开发中不可或缺的一部分。掌握 Node 框架的开发技能,对于开发者来说具有重要的意义。
146 59
|
3月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端框架
【10月更文挑战第34天】在数字化时代,后端开发如同一座桥梁,连接着用户界面与数据处理的两端。本文将通过Node.js这一轻量级、高效的平台,带领读者领略后端框架的魅力。我们将从基础概念出发,逐步深入到实战应用,最后探讨如何通过代码示例来巩固学习成果,使读者能够在理论与实践之间架起自己的桥梁。
|
3月前
|
Web App开发 缓存 监控
如何解决Node框架中内存管理的挑战?
解决 Node 框架中内存管理的挑战需要综合运用多种方法,并且需要在开发过程中保持谨慎和细心,不断优化和改进代码。同时,定期进行内存管理的检查和维护也是非常重要的。
123 63
|
3月前
|
安全 前端开发 JavaScript
Node框架的优缺点
Node 框架的优点使其在现代 Web 开发中具有重要地位,但同时也需要开发者在使用过程中注意其缺点,合理选择和应用,以充分发挥其优势,避免潜在问题的出现。随着技术的不断发展和完善,Node 框架也在不断改进和优化,以更好地适应各种应用需求。
105 47
|
3月前
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
3月前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
3月前
|
存储 JavaScript 搜索推荐
Node框架的安装和配置方法
安装 Node 框架是进行 Node 开发的第一步,通过正确的安装和配置,可以为后续的开发工作提供良好的基础。在安装过程中,需要仔细阅读相关文档和提示,遇到问题及时解决,以确保安装顺利完成。
171 2
|
3月前
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
134 1
|
3月前
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
78 0
|
4月前
|
JavaScript 前端开发 中间件
探索后端技术:Node.js与Express框架的完美融合
【10月更文挑战第7天】 在当今数字化时代,Web应用已成为日常生活不可或缺的一部分。本文将深入探讨后端技术的两大重要角色——Node.js和Express框架,分析它们如何通过其独特的特性和优势,为现代Web开发提供强大支持。我们将从Node.js的非阻塞I/O和事件驱动机制,到Express框架的简洁路由和中间件特性,全面解析它们的工作原理及应用场景。此外,本文还将分享一些实际开发中的小技巧,帮助你更有效地利用这些技术构建高效、可扩展的Web应用。无论你是刚入门的新手,还是经验丰富的开发者,相信这篇文章都能为你带来新的启发和思考。

热门文章

最新文章