Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJs-使用redis,将redis与express连接_Node.js_Express_Redis - Fatal编程技术网

Node.js NodeJs-使用redis,将redis与express连接

Node.js NodeJs-使用redis,将redis与express连接,node.js,express,redis,Node.js,Express,Redis,注意 对于那些与Redis抗争的人,必须启动Redis服务器。在windows上,有一个redis发行版,请查看以下链接:然后启动“redis server.exe”启动服务器。 下面是关于node.js的教程。本教程使用Express和Redis。 我安装了redis和connect redis(它们在package.json中引用): 在my server.js中(只有有意义的部分): 错误消息: Express server listening on port 3000 [ERROR] E

注意 对于那些与Redis抗争的人,必须启动Redis服务器。在windows上,有一个redis发行版,请查看以下链接:然后启动“redis server.exe”启动服务器。

下面是关于node.js的教程。本教程使用Express和Redis。 我安装了redis和connect redis(它们在package.json中引用):

在my server.js中(只有有意义的部分):

错误消息:

Express server listening on port 3000
[ERROR] Error
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED
    at RedisClient.on_error (D:\Programming\Screencasts\peepcode\nodejs\peepcode
-069-full-stack-nodejs-i-mov\code\roland\HotPie\node_modules\redis\index.js:140:
24)
    at Socket.<anonymous> (D:\Programming\Screencasts\peepcode\nodejs\peepcode-0
69-full-stack-nodejs-i-mov\code\roland\HotPie\node_modules\redis\index.js:74:14)

    at Socket.EventEmitter.emit (events.js:88:17)
    at Socket._destroy.self.errorEmitted (net.js:329:14)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)
[ERROR] Error
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED
    at RedisClient.on_error (D:\Programming\Screencasts\peepcode\nodejs\peepcode
-069-full-stack-nodejs-i-mov\code\roland\HotPie\node_modules\redis\index.js:140:
24)
    at Socket.<anonymous> (D:\Programming\Screencasts\peepcode\nodejs\peepcode-0
Express服务器在端口3000上侦听
[错误]错误
错误:到127.0.0.1:6379的Redis连接失败-连接失败
在RedisClient.on\u错误(D:\Programming\Screencasts\peepcode\nodejs\peepcode
-069-full-stack-nodejs-i-mov\code\roland\HotPie\node\u modules\redis\index.js:140:
24)
在插座上。(D:\Programming\Screencasts\peepcode\nodejs\peepcode-0
69-full-stack-nodejs-i-mov\code\roland\HotPie\node\u modules\redis\index.js:74:14)
位于Socket.EventEmitter.emit(events.js:88:17)
在套接字处发出了_destroy.self.error(net.js:329:14)
在process.startup.processNextTick.process.\u tickCallback(node.js:244:9)
[错误]错误
错误:到127.0.0.1:6379的Redis连接失败-连接失败
在RedisClient.on\u错误(D:\Programming\Screencasts\peepcode\nodejs\peepcode
-069-full-stack-nodejs-i-mov\code\roland\HotPie\node\u modules\redis\index.js:140:
24)
在插座上。(D:\Programming\Screencasts\peepcode\nodejs\peepcode-0
Express开始侦听端口3000,这正是我所期望的。redis错误消息提到端口6379上的连接。如果我将redisClient传递给RedisStore,就会发生这种情况,这就是我理解的绑定redis和RedisStore的方法


我正在Windows上开发,看起来您没有运行redis服务器。您对如何下载、安装并运行服务器和客户端有很好的解释。

提供的代码很好,只是配置错误。需要更改的只是端口号

例如,当您设置与redis存储的连接时,会告诉应用程序redis服务器位于何处以及它正在侦听的端口。您也可以同时删除port指令,connect redis将使用远程redis服务器的默认端口

在这种情况下,我建议尝试以下代码片段:

更改:

store: new RedisStore({ ..., port: 3000, ... })
新的:

更新:

我忘了说明命令
netstat
ping
telnet
可以帮助调试本地打开的端口以及服务返回到应用程序的内容。如果您在Linux、OSX或BSD等unix环境中,这两个命令将在cmd.exe/powershell和bash下执行

这方面的一个示例是执行以下操作:

窗口:

netstat -np tcp | find "3000"

netstat -np tcp | find "6379"
Linux:

netstat -nlt | grep '3000\|6379'
这样做的目的是报告localhost:3000或localhost:6379的本地打开的端口。如果您使用远程系统,那么您将使用ping查看服务器是否已启动,并使用类似nmap的端口扫描程序来发现可用的远程端口

完成所有这些操作后,您将使用以下命令启动连接:

telnet <host> 3000
telnet <host> 6379
telnet 3000
telnet 6379

记住,仅仅因为一个人使用网络语言编程并不意味着他也没有学习网络的技术目的。

除了上面提到的,我想补充一点
express.session{..}
抛出以下错误,因为session现在已超出express核心

Error('Most middleware (like ' + name + ') is no longer bundled with Express an....
解决方案: 加

var session=require('express-session');


并使用普通的
session
而不是
express。session

Redis server是否在此框中运行?您可以使用Redis cli检查它是否正在运行并尝试手动连接吗?我按照作者的建议执行了simple.js(node simple.js)并抛出错误:错误:Redis连接到127.0.0.1:6379失败-连接ECONREFUSSED错误:Redis连接到127.0.0.1:6379失败-连接ECONREFUSSED我如何启动Redis?我没想到在安装后会做额外的事情….
使用:$src/Redis服务器运行Redis
netstat -nlt | grep '3000\|6379'
telnet <host> 3000
telnet <host> 6379
Error('Most middleware (like ' + name + ') is no longer bundled with Express an....