Express.JS使用详解

Express.js使用详解

Express.js 是一款基于 Node.js 平台的开源,极简,灵活的web应用开发框架。本文将详细介绍如何在 Node.js 中使用 Express.js。

安装和初始化项目

在使用 Express.js 前,需要在本地环境中安装 Node.js 和 npm。安装完毕后,可以使用以下命令全局安装 Express.js:

npm install -g express

全局安装完成后,在项目目录中初始化一个 Node.js 项目:

npm init

在操作过程中,可以根据自己需要的选项进行配置,最终会生成 package.json 文件。

基本用法

创建应用

在项目目录中创建一个名为 app.js 的 JavaScript 文件,在文件中引入 Express.js 并创建一个 Express 应用实例:

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

定义路由

可以通过 HTTP 请求方式来定义路由,例如:

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

// POST 请求
app.post('/', (req, res) => {
  res.send('Got a POST request')
})

// PUT 请求
app.put('/user', (req, res) => {
  res.send('Got a PUT request at /user')
})

// DELETE 请求
app.delete('/user', (req, res) => {
  res.send('Got a DELETE request at /user')
})

以上代码中,我们定义了四个 HTTP 请求路由,分别是 GET、POST、PUT 和 DELETE。其中 app.get()、app.post()、app.put() 和 app.delete() 为 Express.js 中定义 HTTP 请求路由的方法,第一个参数为路由路径,第二个参数为路由处理函数。

启动服务器

在路由定义完毕后,需要启动服务器:

app.listen(3000, () => {
  console.log('Example app listening on port 3000!')
})

以上代码中,app.listen() 方法启动服务器,第一个参数指定监听端口,第二个参数为一个回调函数。当服务器启动后,控制台会输出 "Example app listening on port 3000!"。

处理静态文件

使用 Express.js 可以处理静态文件,例如 CSS 文件、JavaScript 文件和图像等。可以使用内置的 express.static() 中间件来处理,例如:

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

以上代码中,express.static() 中间件可以设置根目录为 'public',当使用静态资源时,只需在相应的 HTML 文件中引入静态资源即可,例如:

<!-- 引入 public 目录下的一个 css 文件 -->
<link rel="stylesheet" type="text/css" href="/css/style.css">

使用模板引擎

Express.js 可以与多种模板引擎配合使用。例如我们使用 ejs 模板引擎,可以使用以下命令安装:

npm install ejs --save

安装完毕后,在 app.js 文件中设置模板引擎:

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

以上代码中,我们设置了 ejs 作为模板引擎。

在 views 文件夹中创建一个名为 index.ejs 的文件,内容如下:

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1><%= message %></h1>
  </body>
</html>

修改路由处理函数如下:

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

以上代码中,我们使用 res.render() 方法渲染模板文件,参数一为模板文件,参数二为包含在模板中需要的数据。在模板文件中,使用 <%= %> 输出变量数据。

示例说明

我们使用 Express.js 实现一个简单的注册和登录页面,并将添加的用户展示出来。具体代码如下:

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

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

const users = []

app.use(express.urlencoded({ extended: false }))
app.use(express.static('public'))

app.get('/', (req, res) => {
  res.render('index', { title: 'Express', users})
})

app.get('/register', (req, res) => {
  res.render('register', { title: 'Register' })
})

app.post('/register', (req, res) => {
  const { username, password } = req.body
  users.push({
    id: users.length + 1,
    username,
    password
  })
  res.redirect('/')
})

app.get('/login', (req, res) => {
  res.render('login', { title: 'Login' })
})

app.post('/login', (req, res) => {
  const { username, password } = req.body
  const user = users.find(u => u.username === username && u.password === password)
  if (user) {
    res.send(`Hello ${user.username}!`)
  } else {
    res.send('Invalid username or password!')
  }
})

app.listen(3000, () => {
  console.log('Example app listening on port 3000!')
})

在这个例子中,我们使用了 ejs 模板引擎来渲染页面,使用 express.urlencoded() 中间件来处理表单提交。在浏览器中访问 http://localhost:3000/,可以展示添加的用户。在注册页面中添加新用户信息后,在首页中可以展示出来,用户可以使用添加的信息进行登录。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Express.JS使用详解 - Python技术站

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

相关文章

  • nodejs编写bash脚本的终极方案分享

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

    node js 2023年6月8日
    00
  • 浅谈如何通过node.js对数据进行MD5加密

    让我详细讲解一下如何通过Node.js对数据进行MD5加密的完整攻略。 什么是MD5加密 MD5加密是一种广泛用于数据安全领域的加密方式。它将任意长度的消息以一种不可逆的方式转换成一个长度固定的消息摘要(即16进制数字表示的32位字符串),以保证数据传输的安全性。 使用Node.js进行MD5加密 在Node.js中,可以通过crypto模块进行数据加密操作…

    node js 2023年6月8日
    00
  • 浅谈Vue3中key的作用和工作原理

    下面就是“浅谈Vue3中key的作用和工作原理”的完整攻略。 什么是key? Vue中的key是v-for指令中的一个特殊属性。当Vue更新组件列表时,Vue会将列表中的每个节点与其之前的节点进行对比,并通过一种算法来尽量少地更改DOM树。通过使用key属性,同时考虑节点的顺序、类型和内容,Vue可以更好地确定哪些节点需要被更新,删除或添加。 key的作用 …

    node js 2023年6月8日
    00
  • 使用NodeJS 5分钟 连接 Redis 读写操作的详细过程

    以下是使用NodeJS连接Redis进行读写操作的详细过程: 步骤一:安装 Redis 和 Node.js 首先,需要安装 Redis 和 Node.js。可以在 Redis 的官网(https://redis.io/)和 Node.js 的官网(https://nodejs.org/)上下载最新的版本进行安装。 步骤二:启动 Redis 服务 安装完成后,…

    node js 2023年6月8日
    00
  • JavaScript使用正则表达式获取全部分组内容的方法示例

    首先,我们需要先了解什么是正则表达式,正则表达式是一种用来匹配字符串文本的特殊模式,利用这种模式,我们可以通过匹配和搜索来进行字符串处理。 下面是使用正则表达式获取全部分组内容的方法示例,具体步骤如下: 1. 创建正则表达式对象 首先,我们需要创建一个正则表达式对象,用于匹配和搜索字符串。 let reg = /正则表达式/; 上述代码中的正则表达式可以根据…

    node js 2023年6月8日
    00
  • Node.js的非阻塞I/O、异步与事件驱动介绍

    Node.js的非阻塞I/O、异步与事件驱动介绍 Node.js是一个基于Chrome V8引擎的非阻塞I/O、事件驱动的轻量级JavaScript运行环境。Node.js的最大特点是使用了非阻塞I/O、异步和事件驱动模型,这种模式可以让Node.js进行高效的I/O操作。在本文中,我们将会详细介绍Node.js的非阻塞I/O、异步和事件驱动模型。 非阻塞I…

    node js 2023年6月8日
    00
  • Node.js Continuation Passing Style( CPS与回调)

    Node.js是一个基于事件驱动、非阻塞I/O模型的JavaScript运行环境。而 Continuation Passing Style(CPS)也是Node.js中非常重要的编程风格,它主要用于处理异步编程。本文将详细讲解Node.js Continuation Passing Style( CPS与回调)的完整攻略,并通过代码示例进行说明。 什么是Co…

    node js 2023年6月8日
    00
  • Angularjs根据json文件动态生成路由状态的实现方法

    下面是“Angularjs根据json文件动态生成路由状态的实现方法”的完整攻略: 目录结构 – app/ – js/ – controllers/ – homeController.js – aboutController.js – directives/ – navbarDirective.js – services/ – dataService.js …

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