Express.JS使用详解

yizhihongxing

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日

相关文章

  • node.js中的fs.futimes方法使用说明

    fs.futimes()是Node.js中的一个API,它用于修改指定文件的时间戳信息。该方法有以下两个重载形式: 1.改变指定路径的文件描述符所代表文件的访问和修改时间戳: fs.futimes(fd, atime, mtime, callback) 参数说明: fd :文件描述符; atime :access time 即文件访问时间戳; mtime :…

    node js 2023年6月8日
    00
  • Nodejs Sequelize手册学习快速入门到应用

    Node.js 是一种流行的服务器端 JavaScript 运行环境,而 Sequelize 是一款基于 Node.js 的ORM 库,其可以支持多种数据库,如MySQL、PostgreSQL、SQLite 和 Microsoft SQL Server。Sequelize具有易学易用的特点,从 Sequelize的官方文档开始入手,可以快速学习和开发 Seq…

    node js 2023年6月8日
    00
  • Node.js之网络通讯模块实现浅析

    Node.js之网络通讯模块实现浅析 简介 Node.js是基于V8引擎的JavaScript运行环境,它具有事件驱动、异步I/O等特点,使其成为一个非常适合构建高性能网络应用程序的工具。Node.js提供了许多用于处理网络通讯的模块,本文将对其中的几个模块进行浅析,介绍它们的用途和实现方法。 net模块 net模块是Node.js中用于处理TCP网络通讯的…

    node js 2023年6月8日
    00
  • nodejs中的异步编程知识点详解

    Node.js中的异步编程知识点详解 什么是异步编程 在 Node.js 中,异步编程是非常常见的,它可以让程序更高效地利用资源,提高了程序的性能。 异步编程是指程序不需要等待某个操作完成,就能继续进行下一步操作。它通常会发送一些请求,然后继续执行其他任务,直到得到请求的响应后再执行相应的回调函数。 异步编程的优势 更高效的利用资源 在执行某个任务的同时,我…

    node js 2023年6月8日
    00
  • 解决node终端下运行js文件不支持ES6语法

    问题描述: 当我们在终端运行 js 文件时,经常遇到 ES6 语法不被支持的问题,导致程序无法正常执行。比如在终端上运行以下 ES6 语法的代码时: let a = 1; const b = 2; console.log(a + b); 会报出以下错误: /Users/xxx/Desktop/test.js:1 let a = 1; ^^^ SyntaxEr…

    node js 2023年6月8日
    00
  • AngularJS 2.0入门权威指南

    AngularJS 2.0入门权威指南 AngularJS 是一款流行的前端 JavaScript 框架,可以通过 web 应用程序构建可扩展和动态交互的用户界面。AngularJS 版本 2.0 是 AngularJS 的下一个版本,具有很多新的功能和增强的性能。要学习 AngularJS 2.0 ,以下是完整攻略。 安装 AngularJS 2.0 要使…

    node js 2023年6月8日
    00
  • JavaScript控制台的更多功能

    当使用JavaScript编写代码时,开发人员通常会使用控制台来测试和调试代码。除了基本的日志输出和调试器之外,JavaScript控制台还提供了许多其他有用的功能。下面是一些JavaScript控制台的高级功能,包括如何使用控制台进行网络检查、时间测量和代码分析等。 使用控制台检查网络 通过控制台,我们可以使用fetch命令或XMLHttpRequest对…

    node js 2023年6月8日
    00
  • JavaScript中MutationObServer监听DOM元素详情

    我来为您讲解一下JavaScript中MutationObServer监听DOM元素的完整攻略。 MutationObServer是什么? MutationObServer(简称为MO)是JavaScript的一个API,用于监听DOM元素的变化。它可以监听并监控DOM树结构的任何变化,当有改变发生时,它会执行一个回调函数并提供改变的具体细节。 使用Muta…

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