【问题标题】:Application-scope Variables in Node.js?Node.js 中的应用程序范围变量?
【发布时间】:2018-04-27 20:32:41
【问题描述】:
Node.js 中是否存在比请求持续时间更长的变量范围,它可供所有应用程序用户使用?我想创建一个可供多个应用用户读取/写入的变量,如下所示:
var appScope.appHitCount += 1;
会话范围不起作用,因为它是特定于用户的。寻找特定的应用程序。我在 Node.js 文档中找不到任何内容。谢谢。
【问题讨论】:
标签:
node.js
variables
scope
【解决方案1】:
如果您有一个应用程序模块范围内的变量,则该范围内的所有内容都可以使用并共享该变量。我想在一个大型应用程序中你需要小心这个,但这只是常规的 javascript 范围。例如,当您点击它时,它将继续附加到数组中:
const express = require('express')
const app = express()
var input = []
app.get('/:input/', (req, res) => {
var params = req.params
input.push(params.input)
res.send("last input was: " + JSON.stringify(input))
})
app.listen(8080, () => console.log('Example app listening on port 8080!'))
现在访问“http://localhost:8080/hi”返回:
最后一个输入是:["hi"]
然后'http://localhost:8080/there'返回:
最后一个输入是:["hi", "there"]
...等等。
如果您想要整个应用程序(即所有模块)共享的东西,您可以设置一个所有模块都为require()d 的模块,并且 i=负责获取和设置该值。