浅谈Node.js轻量级Web框架Express4.x使用指南

浅谈Node.js轻量级Web框架Express4.x使用指南

前言

Node.js 是一种非常流行的后端开发语言,可以快速构建高性能、可扩展的网络应用程序。而 Express 是 Node.js 中最流行的 Web 框架之一,其拥有轻量且易于使用的特点,同时具备完整的中间件系统。本文结合最新版 Express(4.x)来深入浅出地介绍使用指南。

安装

在使用 Express 前,我们首先需要安装它。可以使用 npm 命令进行安装:

npm install express

在安装 Express 的同时,我们还可以选择安装一些常用的中间件,例如:

npm install body-parser # 处理 HTTP 请求的 body 数据
npm install cookie-parser # 处理 HTTP 请求中的 cookie
npm install cors # 处理跨域请求
npm install express-session # 提供用户会话支持
npm install multer # 用于上传文件

Hello World

下面我们来通过一个 Hello World 的例子来展示 Express 的使用。首先,我们需要在 Node.js 中引入 Express:

const express = require('express')
const app = express()

然后,我们就可以定义一个路由,来响应用户的请求:

app.get('/', (req, res) => {
  res.send('Hello World')
})

最后,我们启动服务器:

app.listen(3000, () => {
  console.log('Server running at http://localhost:3000/')
})

这样,我们就完成了一个最简单的 Express 应用程序。

中间件

在 Express 中,中间件(Middleware)是一个函数,它可以访问请求对象(request object,简称 req)和响应对象(response object,简称 res),以及 Web 应用程序中的下一个中间件函数。中间件可以用来执行各种任务,例如请求日志、身份验证、数据转换等。

Express 应用程序可以使用多个中间件。在 Express 中,使用 app.use() 函数来安装中间件。例如:

const logger = (req, res, next) => {
  console.log(`[${new Date().toISOString()}] ${req.method} ${req.url}`);
  next()
}

app.use(logger)

上面的代码定义了一个名为 logger 的中间件,来记录每一个请求的时间、方法和 URL 地址。这个中间件将使用 app.use() 函数来安装到我们的应用程序中。

路由

在 Express 中,通过路由(Route)来定义应用程序如何响应客户端请求。路由由一个 HTTP 请求方法、一个路径和一个或多个处理函数组成。Express 提供了一系列的路由方法,包括 get()post()put()delete()patch() 等。

下面是一个使用 get() 方法定义路由的示例:

app.get('/users', (req, res) => {
  res.send('Get Users')
})

这个路由只会响应 GET 方式访问 /users 地址的请求,并返回一个字符串 'Get Users'

路由的路径可以使用参数,这可以让我们使用相同的路由处理程序来匹配不同的 URL。例如,我们可以这样定义一个带参数的路由:

app.get('/users/:id', (req, res) => {
  res.send(`User ID: ${req.params.id}`)
})

在调用这个路由时,可以使用形如 /users/123 的 URL 地址,其中的 123 就是参数值。

静态文件服务

在 Express 中,我们可以很方便地设置静态文件服务。例如,我们可以把所有的静态文件放在一个名为 public 的目录下,然后通过如下代码设置静态文件服务:

app.use(express.static('public'))

这样,就可以通过 URL 访问所有的静态文件,例如 http://localhost:3000/images/logo.png

模板引擎

在 Express 中,我们可以使用各种模板引擎来生成 HTML 页面。模板引擎提供了一个包含动态内容的模板文件和一个数据对象,模板引擎使用数据对象来渲染模板文件,最终生成 HTML 页面。Express 支持各种模板引擎,例如 Pug、EJS 等。

以下是一个使用 Pug 模板引擎的例子:

首先,我们需要在 Node.js 中安装 Pug:

npm install pug

然后,我们在 Express 中使用 Pug:

app.set('view engine', 'pug')

最后,我们定义一个路由来渲染 Pug 模板:

app.get('/', (req, res) => {
  res.render('index', { title: 'Express', message: 'Hello World!' })
})

在上面的例子中,我们定义了一个名为 index 的模板文件,它使用两个变量 titlemessage 来渲染模板。在路由处理程序中,我们使用 res.render() 函数来呈现模板。

示例一

下面是一个使用 Express 和 MongoDB 操作数据库的示例。首先,我们需要在 Node.js 中引入 mongoose 库和 Express 库:

const express = require('express')
const mongoose = require('mongoose')
const app = express()

然后,我们可以利用 mongoose 来连接 MongoDB 数据库:

mongoose.connect('mongodb://localhost/my_db', { useNewUrlParser: true })

这里,我们连接名为 my_db 的 MongoDB 数据库。接着,我们可以定义一个数据模型,并使用它来创建一个新的记录:

const userSchema = new mongoose.Schema({
  name: String,
  email: String,
  age: Number
})

const User = mongoose.model('User', userSchema)

const user = new User({ name: 'Tom', email: 'tom@example.com', age: 20 })
user.save()

这里,我们定义了一个名为 User 的数据模型,它包含了 nameemailage 三个属性。然后,我们创建了一个新的记录,并保存到数据库中。

最后,我们可以定义一个路由,来查询所有的用户:

app.get('/users', async (req, res) => {
  const users = await User.find()
  res.json(users)
})

这个路由使用 User.find() 方法查询所有的用户,并使用 res.json() 函数返回一个 JSON 响应。

示例二

下面是一个使用 Express 和 Elasticsearch 搜索引擎的示例。首先,我们需要在 Node.js 中引入 elasticsearch 包和 Express 库:

const express = require('express')
const { Client } = require('@elastic/elasticsearch')
const app = express()

然后,我们可以创建一个 elasticsearch 客户端,并连接到我们的 Elasticsearch 集群:

const client = new Client({ node: 'http://localhost:9200' })
await client.ping()

这里,我们使用 new Client() 函数创建一个 elasticsearch 客户端,并指定了 Elasticsearch 节点的地址。然后,我们使用 client.ping() 方法来测试连接是否成功。

接着,我们可以定义一个路由,来搜索我们的 Elasticsearch 数据:

app.get('/search', async (req, res) => {
  const query = req.query.q
  const { body } = await client.search({
    index: 'my_index',
    body: { query: { match: { title: query } } }
  })
  const hits = body.hits.hits.map(hit => hit._source)
  res.json(hits)
})

这个路由使用 client.search() 方法查询 Elasticsearch 数据,并返回一个 JSON 响应。

总结

在本文中,我们介绍了 Express 的一些基本概念和结构,并给出了一些示例,包括 Hello World、中间件、路由、静态文件服务、模板引擎、连接 MongoDB 数据库和 Elasticsearch 搜索引擎等。我们希望通过这些示例,能够帮助读者更好地理解和使用 Express。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈Node.js轻量级Web框架Express4.x使用指南 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 基于nodejs+express(4.x+)实现文件上传功能

    实现文件上传功能是Web开发中常见的需求之一。本文档将详细讲解如何使用nodejs+express(4.x+)实现文件上传功能。 1. 安装express(4.x+)和multer 在开始使用express和multer之前,需要先确保它们已经安装在你的电脑上。 可以通过npm来进行安装: npm install express multer –save …

    node js 2023年6月8日
    00
  • nodejs编写bash脚本的终极方案分享

    我来给你详细讲解一下“nodejs编写bash脚本的终极方案分享”的完整攻略。 1. 前言 在介绍nodejs编写bash脚本的终极方案之前,我们需要先了解一些基础知识。 bash是一种命令行操作系统的壳(shell),它提供了一种交互式的界面,我们可以在命令行中直接输入指令,然后执行操作。而nodejs是一种运行在服务器端的JavaScript环境,它通过…

    node js 2023年6月8日
    00
  • javascript中FOREACH数组方法使用示例

    下面我就为你详细讲解一下“javascript中FOREACH数组方法使用示例”的完整攻略。 FOREACH方法简介 FOREACH方法是 JavaScript 中 Array 对象定义的方法,用于对数组中的元素进行遍历操作。与传统循环不同的是,FOREACH方法不需要我们自己去编写循环变量、循环条件和循环增量等等。 FOREACH方法的语法 array.f…

    node js 2023年6月8日
    00
  • node.js到底要不要加分号浅析

    关于“node.js到底要不要加分号”的问题,其实并没有一定的规定。但是,在实际编写代码时,加不加分号会直接影响代码的可读性和可维护性,因此我们需要在实际项目中进行选择。 为什么会有这种争议 JavaScript语言规范并没有明确规定一行代码要不要加分号。但是,由于历史原因,JavaScript在执行时会自动加上分号。但是,在编写代码时,只写出语句的最后一行…

    node js 2023年6月7日
    00
  • Node.js中require的工作原理浅析

    下面是详细讲解“Node.js中require的工作原理浅析”的完整攻略。 什么是require 在Node.js中,require用来加载模块文件。在CommonJS规范中,每个文件都被视为一个模块,并且每个模块中的代码是私有的,其它模块外部不可访问。require就是用来让一个模块能够通过别的模块来访问和调用另一个模块中的私有变量和方法。 require…

    node js 2023年6月8日
    00
  • 如何在Nodejs中使用模块fs文件系统

    想要在Node.js中使用文件系统模块(fs),需要先引入该模块。在Node.js中,引入模块的方式是使用require函数,如下所示: const fs = require(‘fs’); 引入模块后,就可以使用该模块中提供的方法来读取、写入文件等操作。下面详细讲解如何在Node.js中使用文件系统模块(fs)。 读取文件内容 使用fs模块可以读取本地计算机…

    node js 2023年6月8日
    00
  • 详解原生js实现offset方法

    下面是详解“详解原生js实现offset方法”的完整攻略。 什么是offset方法 offset() 是 jQuery 中的一个方法,用于获取元素相对于文档的偏移量。而原生 JavaScript 没有提供类似的方法,所以我们需要自己实现它。 实现offset方法的基本思路 获取元素本身的left、top值 获取元素的 offsetParent 元素,不断循环…

    node js 2023年6月8日
    00
  • Node.js Express 框架 POST方法详解

    一、Node.js Express 框架 POST方法详解 在Node.js开发的web应用中,通常利用Express框架去搭建应用架构,POST方法则是Express框架中常用的一种请求方式。下面详细讲解Node.js Express框架POST方法的使用方式。 二、使用Node.js Express框架的POST方法 通过如下的代码,我们可以实现一个简单…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部