📅  最后修改于: 2023-12-03 15:14:57.466000             🧑  作者: Mango
在 Express.js 中,res.app
是一个可读写的属性,它可用于访问与 Express 应用程序相关联的实例。该属性返回的是当前响应对象所在的 Express.js 应用程序实例。
const express = require('express')
const app = express()
app.get('/', (req, res) => {
console.log(res.app === app) // true
res.send('Hello World!')
})
app.listen(3000, () => {
console.log('Example app listening on port 3000!')
})
在上面的示例中,我们创建了一个 Express 应用程序,并将其绑定到端口 3000。当浏览器请求根路径时,我们会输出 true
,这是因为 res.app
和 app
是相同的对象,这证明了我们正在访问与 Express 应用程序相关联的实例。
res.app
属性通常用于以下情况:
例如,我们可以将一个变量存储在应用程序级别,然后在不同的路由处理程序之间共享它。以下示例演示了如何在路由处理程序之间共享变量:
const express = require('express')
const app = express()
app.set('username', 'John')
app.get('/', (req, res) => {
res.send(`Hello ${res.app.get('username')}!`)
})
app.get('/profile', (req, res) => {
res.send(`This is the profile page of ${res.app.get('username')}.`)
})
app.listen(3000, () => {
console.log('Example app listening on port 3000!')
})
在上面的示例中,我们使用 app.set()
方法将一个变量存储在应用程序级别,然后使用 res.app.get()
方法从路由处理程序中获取它。当浏览器请求根地址时,我们将输出 Hello John!
。当浏览器请求 /profile
路径时,我们将输出 This is the profile page of John.
。
在 Express.js 中,res.app
属性是一个非常有用的工具,它允许我们访问与 Express 应用程序相关联的实例,并在不同的路由处理程序之间共享数据。