📜  npm express - Javascript (1)

📅  最后修改于: 2023-12-03 15:03:17.164000             🧑  作者: Mango

深入学习npm express框架

Express是一个基于Node.js的Web应用程序框架。它为开发者提供了一组强大的功能,可以帮助他们快速轻松地构建可扩展、安全且高性能的Web应用程序。下面我们来一步步学习如何使用npm express框架。

安装Express

在开始使用Express之前,需先安装它。我们可以通过npm来安装Express,具体命令如下:

npm install express --save
hello world

接着,我们使用Express的最基本功能代码,创建一个简单的“Hello World”Web应用程序:

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

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

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

这几行代码会创建一个Express应用程序,并且使用app.get()来路由HTTP get请求。当用户访问主页时,会发送一个包含“Hello World!”的响应。

Router

使用express.Router()创建类似于小型的Express应用程序。路由器有自己的“中间件”和路由系统。一个简单的示例如下:

const express = require('express')
const router = express.Router()

router.get('/', (req, res) => {
  res.send('home page')
})

router.get('/about', (req, res) => {
  res.send('about page')
})

module.exports = router

这里我们使用Express的router()功能来创建路由,并将其导出为模块。该路由定义了两个路由:

  • 当用户访问主页时,会发送一个包含“home page”的响应。
  • 当用户访问“/about”时,会发送一个包含“about page”的响应。

我们可以在任何Express应用程序中使用此路由,如下所示:

const express = require('express')
const router = require('./router')  // 引入路由文件

const app = express()

app.use('/', router)

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

router()的参数是路由的前缀,由于我们定义了根路由'/',所以只需使用app.use('/', router)把它与Express应用程序连接起来即可。这也是中间件的概念,app.use()可以在Express应用程序中添加一些通用操作。不论何时返还到这个路由根目录,都会调用路由文件的router.get('/', ...)对应函数。

Middleware中间件

Middleware是Express框架中一个非常强大的功能。它允许我们在处理HTTP请求时执行一些通用操作。

基本使用

其中一个常见的中间件是body-parser。

npm install --save body-parser
const express = require('express')
const bodyParser = require('body-parser')

const app = express()
app.use(bodyParser.json()) // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded

当我们需要处理POST请求时,经常需要将请求体解析为JSON或其他类型的实际数据。body-parser是处理POST请求的必需模块。

自定义中间件

Express允许我们在应用程序级别和路由级别使用自定义中间件。下面的示例演示了如何在应用程序级别使用自定义中间件:

app.use((req, res, next) => {
  console.log('Time:', Date.now())
  next()
})

以上中间件打印出当前时间并调用next()函数。你可以添加你自己的逻辑。

View engines视图引擎

Express应用程序还支持视图引擎。视图引擎使得我们可以把HTML页面作为响应返回,而且传递了一些参数作为变量。Express中有很多可用的视图引擎,例如Pug、EJS和Handlebars等。以下是一个简单的使用Pug视图引擎的示例:

npm install --save pug
const express = require('express')
const app = express()
app.set('view engine', 'pug')
app.set('views', './views') // 配置视图路径

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

以上代码定义了Pug视图引擎作为默认视图引擎,以及视图所在的路径。我们通过调用render()函数来返回视图和参数。在以上示例中,我们传递了一个参数title。在Pug视图中我们可以使用title变量来动态修改网页标题。

html
    head
        title= title
    body
        h1= title
最后

以上是我们在学习npm express - Javascript之前所必须掌握的一些基本知识点。Express框架的优秀设计和易用性,让我们能够快速构建出高性能、易维护且易扩展的Web应用程序,相信你会越来越喜欢它。

注意:以上代码片段为伪代码,可能存在语法问题和部分Api未罗列完整情况,本AI助手写作过程中,主要聚焦在展示整体思路和如何使用Express框架做Web应用程序本身,可以在官网文档中更详细的了解和学习,谢谢!