node.js - 节点js服务器propplem
问题描述
const express = require("express");
const app = express();
var i = new Number;
i=0;
app.get("/", function(req, res){
i++
console.log(i);
});
app.listen(8080);
我创建了一个非常小的节点 js 项目。我有个问题。当我创建一个像上面这样的变量时,它不会单独评估每个用户。也就是说,当用户请求获取时,我希望它每次都为 1。我的问题示例是,当杰克用户进入网站时,如果他没有注销,则从另一台设备进入该网站主页的人会使用杰克进入他的帐户。我怎样才能做到这一点?
解决方案
对于您的问题,最简单的答案是简单地在传递给的函数内声明和增加变量app.get
,但我将假设您希望对于给定用户的一系列请求,数字将增加的情况。
最简单的方法是使用由express-session库提供的服务器端会话。此外,为了使其工作,您需要调用res.end()
以便将与服务器会话关联的 cookie 发送回用户的浏览器。通常可以在此处找到有关会话的更多信息。
下面是复制您在那里的意图的代码,但对于来自唯一浏览器实例的每个请求(由与服务器会话关联的相同 cookie 值标识)递增:
const express = require('express');
const session = require('express-session');
const app = express();
app.use(session({
resave: false,
saveUninitialized: true,
secret: 'secret',
cookie: {
maxAge: 60000
}
}));
app.get('/', function(req, res){
if (!req.session.value) {
req.session.value = 0;
}
req.session.value++;
console.log(req.session.value);
res.end();
});
app.listen(8080);
推荐阅读
- css - React:使用混合的 React 和 DOM 事件时停止点击事件传播
- python - 为什么不执行睡眠指令之前的行?
- node.js - nodemon 应用程序在尝试要求 mongoose 时崩溃
- swift - 滑动识别器只识别一个方向
- javascript - 可以拦截来自 iframe(同一域)内部的 XMLHttpRequests 吗?
- file-upload - Google Forms 上传的文件在 gDrive 中存储了两次
- python - Python 行到时间序列列
- woocommerce - 在空白页面上批准付款重定向后
- python - 使用 sympy 求解线性系统 6x6 矩阵
- reactjs - 如何使用 React cdn 导入和导出?