gpt4 book ai didi

node.js - Node redis访客计数器-抛出错误

转载 作者:可可西里 更新时间:2023-11-01 10:59:05 25 4
gpt4 key购买 nike

我按照 https://gist.github.com/hubgit/399898#file-node-redis-visitor-counter-js 尝试了代码.我将代码保存在名为 rediscounter.js 的 js 文件中,并作为“node rediscounter.js”执行。它在控制台中显示输出为“服务器运行于 127.0.0.1:6380”

但是当我尝试在浏览器中访问 url 127.0.0.1:6380 时它会抛出以下错误,crypto.js:240 this._binding.update(数据,编码); ^类型错误:不是字符串或缓冲区 在 Hash.update (crypto.js:240:17) 在服务器。 (/home/veera/Radha/rediscounter.js:7:40) 在 Server.emit(events.js:98:17) 在 HTTPParser.parser.onIncoming (http.js:2109:12) 在 HTTPParser.parserOnHeadersComplete [作为 onHeadersComplete] (http.js:122:23) 在 Socket.socket.ondata (http.js:1967:22) 在 TCP.onread (net.js:528:27)

我应该在 redis 服务器中托管一些东西吗?我的 redis 服务器似乎运行良好。请告诉我我在这里遗漏的步骤是什么。

最佳答案

Referer header 并不总是存在,因此您对 hash.update 的调用在这里失败:

var urlhash = crypto.createHash("md5").update(request.headers.referer).digest("hex");

首先检查request.headers.referer是否存在。

例子:

zlatko@zlatko-desktop:~/tmp$ cat app.js 
var http = require('http');

http.createServer(function(req, res) {

res.write(JSON.stringify(Object.keys(req.headers)) + '\n');
res.end();
}).listen(4040);

zlatko@zlatko-desktop:~/tmp$ curl http://localhost:4040
["user-agent","host","accept"]
zlatko@zlatko-desktop:~/tmp$ curl -H "Referer: google.com" http://localhost:4040
["user-agent","host","accept","referer"]
zlatko@zlatko-desktop:~/tmp$

关于node.js - Node redis访客计数器-抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32948481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com