📅  最后修改于: 2023-12-03 15:03:17.164000             🧑  作者: Mango
Express是一个基于Node.js的Web应用程序框架。它为开发者提供了一组强大的功能,可以帮助他们快速轻松地构建可扩展、安全且高性能的Web应用程序。下面我们来一步步学习如何使用npm express框架。
在开始使用Express之前,需先安装它。我们可以通过npm来安装Express,具体命令如下:
npm install express --save
接着,我们使用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!”的响应。
使用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()功能来创建路由,并将其导出为模块。该路由定义了两个路由:
我们可以在任何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是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()函数。你可以添加你自己的逻辑。
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应用程序本身,可以在官网文档中更详细的了解和学习,谢谢!