草庐IT

Express-C

全部标签

node.js - 为什么每个人都使用 MongoDB 与 Node.Js 和 Express 进行用户身份验证

我找到的几乎所有结合Node.Js/Express.Js和Passport(或其他流行模块)的本地身份验证策略示例都使用MongoDB。我想知道是否有人可以回答我这种组合的优点是什么,以及是否还有其他更轻便的数据库可供使用。例如,任何人使用Redis做这类事情的例子吗?或者为什么不直接使用MySQL进行用户管理? 最佳答案 虽然将Redis用作用户数据库本身没有任何问题(是的,它是一个生产数据库,而不是“只是一个缓存”),但这并不意味着它是一个好主意-至少不是没有额外的工作。您的应用用于与Redis服务器通信的协议(protocol

node.js - Express.js 中的 Redis SET 命令

可能是一个愚蠢的问题,但我可以从redis文档中看到,要设置一个键来保存我将使用的字符串值:SETmykey"Hello"但所有文档似乎都集中在命令行命令上。我正在使用Express.js(带有node.js)并且我希望能够从我的server.js文件运行命令。目前我有:#dbisaredis.createClientobjectsetearlierinmycodedb.set(mykey"Hello");但这不起作用-我收到语法错误警告。有什么建议吗? 最佳答案 您的函数调用中缺少逗号。Redis使用空格分隔参数,但node.js

node.js - 将 redis pubsub 消息转发到 express 中的特定 socket.io 客户端

在我的express服务器中,我使用的是socket.io和Redispubsub。服务端订阅一个Redis消息channel,当有人通过Redis发布新消息时,将Redis消息转发给特定的websocket客户端。根据我从socket.io和Redis文档中读到的内容,我可以使用变量socket向特定客户端发送消息并调用socket.broadcast.to(mySocketID).emit。但在下面的代码中,如果我想向redis订阅者内部的mySocketID发送消息,我该怎么办,这超出了io.on('connection')的范围?varredis=require('redis'

node.js - 如何使 express.js 应用程序在不使用全局的情况下启动时仅连接 redis 1 次?

我只想在我的express应用程序启动时连接到redis客户端1次,但我不想使用global。我该怎么做?谢谢 最佳答案 您可以使用Singleton类来初始化Redis并与Redis建立连接。例如:-varredis=require('redis');classRedis{constructor(){this.host=process.env.REDIS_HOST||'localhost'this.port=process.env.REDIS_PORT||'6379'this.connected=falsethis.client=

node.js - nodejs-express - 在主数据库上实现 Redis 缓存作为 mongodb

我有一个带有基本CRUD操作的简单API,其中一个用户可以有多个任务,一旦用户登录就可以更新、删除、添加和获取所有任务。我使用MongoDB和mLab作为我的主要数据存储来存储用户和任务模式的文档。我想在我的应用程序中实现Redis缓存(仅用于学习目的),我能想到的一个用例是在我为特定用户(在主页上)登录时获取任务时实现它因为getAllUserTasks在发生任何删除/更新/添加时经常被使用和调用。截至目前,该应用程序可与MongoDB一起正常工作,并且文档已正确反射(reflect)在mLab中。现在来到Redis部分,我有一个问题,我应该如何构建我的Redis数据库。首先,让我发

node.js - express app.use middle layer 进行身份验证

我正在尝试利用app.use的中间层进行身份验证。我是新手,我在某个地方读到过它,但没有例子。我目前没有使用app.use进行身份验证,但如果有意义的话我想使用,我有一个基于token的身份验证,根据要求,我执行一些检查,然后将其路由到目标模块。我不想使用任何第3方模块进行身份验证,因为我有自己的token生成和验证例程。问题是我如何在下面使用它,因为我的身份验证系统是异步过程(我有redis处理token)。我无法理解从app.use调用我的异步进程,然后在我成功完成后调用next然后失败呢?app.use(function(request,response,next){next()

javascript - Node.js | Express.js | Redis.io - 处理顺序

对于我的项目,我使用Node.js和express.js以及redis.io作为数据库。现在我有一个带有查询参数的获取资源。它应该给我持有特定书籍的图书馆的ID。但是我不明白我的程序的处理顺序。正如您在下面的代码中看到的,我将库数组打印3次到控制台。varexpress=require('express');varbodyParser=require('body-parser');varredis=require('redis');vardb=redis.createClient();varjsonParser=bodyParser.json();varapp=express();ap

javascript - 在 express 路由器中使用 redis 客户端

我想在某些端点使用redis客户端。我的app.js是这样设置的//应用程序.jsconstredis=require('redis');constclient=redis.createClient(process.env.REDIS_PORT,'redis');constapi=require('./routes/api');constapp=express();constpassport=require('passport');app.use('/api',api(passport));//api.jsmodule.exports=function(passport){router

javascript - req.session undefined with express 和 connect-redis

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:‘session’isundefinedwhenusingexpress/redisforsessionstorevarexpress=require('express');varapp=express();varRedisStore=require('connect-redis')(express);varsession=require('redis-session')({debug:true,ttl:90000000,connection:{port:'7170',host:'127.0.0.1'}});a

javascript - 搞清楚 Node.js + Redis + Express.js 和可爱的异步回调

首先,请原谅我,这对我来说是一个非常未知的领域......得到以下内容:app.get('/user/:user_id/followings',function(req,res){varresponse={},userId=req.params.user_id,ids=req.param('id').split(','),prefix='user',suffix='follower_ids';for(vari=0;i对于以下路径:/user/1/followings?id=1,2,3,4,1000我在控制台中得到了这个:1:user:11:user:21:user:31:user:41