nodejs连接有密码的redis、连接有密码的mongoDB实战与排错

4 篇文章 0 订阅
3 篇文章 0 订阅

nodejs连接redis

redis版本5.0.6

nodejs依赖包redis版本2.6.2

import redis from 'redis'

const redisLink = 'redis://127.0.0.1:6379'
const pwd = '289181'
const opts = {
	auth_pass: pwd,
}
const redisClient = redis.createClient(redisLink, opts)

redisClient
	.on('error', err => console.log('------ Redis connection failed ------' + err))
	.on('connect', () => console.log('------ Redis connection succeed ------'))

export default {
	redis: redis, 
	redisClient: redisClient, 
}

nodejs连接mongoDB

nodejs依赖包mongoose版本4.6.0 ; mongoomise版本0.0.8;bluebird版本3.4.6;
nodejs v12.13.0
mongoDB 版本4.2.1

在mongoDB中执行以下命令创建用户:

db.createUser({ user:'admin',pwd:'test123',roles:[ { role:'userAdminAnyDatabase', db: 'admin'}]});

nodejs连接代码如下:

import bluebird from 'bluebird'
import mongoose from 'mongoose'
import mongoomise from 'mongoomise'

class Mongo{
	constructor(app, config) {
		Object.assign(this, {
			app, 
			config, 
		})

		this.init()
	}

	init() {
		const opts = {
			useMongoClient: true,
			server: {
				socketOptions: { 
					keepAlive: 1 
				}
			}
		}

		mongoose
			.connect('mongodb://mall:test123@127.0.0.1:27017/mall', opts)
			.connection
			.on('error', err => console.log('------ Mongodb connection failed ------' + err))
			.on('open', () => console.log('------ Mongodb connection succeed ------'))

		mongoose.Promise = global.Promise
			
		mongoomise.promisifyAll(mongoose, bluebird)
	}
}

export default Mongo

连接时报错:

D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb\lib\utils.js:98                                                         
    process.nextTick(function() { throw err; });                                                                                                                        
                                  ^                                                                                                                                     
Error [MongoError]: Authentication failed.                                                                                                                              
    at Function.MongoError.create (D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb-core\lib\error.js:31:11)             
    at D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb-core\lib\connection\pool.js:462:72                               
    at authenticateStragglers (D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb-core\lib\connection\pool.js:410:16)      
    at Connection.messageHandler (D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb-core\lib\connection\pool.js:444:5)    
    at Socket.<anonymous> (D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb-core\lib\connection\connection.js:306:22)    
    at Socket.emit (events.js:210:5)                                                                                                                                    
    at Socket.EventEmitter.emit (domain.js:476:20)                                                                                                                      
    at addChunk (_stream_readable.js:308:12)                                                                                                                            
    at readableAddChunk (_stream_readable.js:289:11)                                                                                                                    
    at Socket.Readable.push (_stream_readable.js:223:10)                                                                                                                
    at TCP.onStreamRead (internal/stream_base_commons.js:182:23)                                                                                                        
Emitted 'error' event on NativeConnection instance at:                                                                                                                  
    at D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongoose\lib\connection.js:288:17                                        
    at NativeConnection.Connection.error (D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongoose\lib\connection.js:451:12)    
    at open (D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongoose\lib\connection.js:503:13)                                 
    at D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongoose\lib\connection.js:524:7                                         
    at D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb\lib\db.js:1545:20                                                
    at handleCallback (D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb\lib\utils.js:96:12)                              
    at D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb\lib\db.js:1504:22                                                
    at D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb-core\lib\connection\pool.js:701:7                                
    at D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb-core\lib\connection\pool.js:677:20                               
    at D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb-core\lib\auth\scram.js:190:18                                    
    at D:\SoftwareAndProgram\program\weixin\miniprogram\mini-mall\mini-mall-admin\node_modules\mongodb-core\lib\connection\pool.js:436:18                               
    at processTicksAndRejections (internal/process/task_queues.js:75:11) {                                                                                              
  name: 'MongoError',                                                                                                                                                   
  message: 'Authentication failed.',                                                                                                                                    
  ok: 0,                                                                                                                                                                
  errmsg: 'Authentication failed.',                                                                                                                                     
  code: 18,                                                                                                                                                             
  codeName: 'AuthenticationFailed'                                                                                                                                      
}                                                                                                                                                                       
npm ERR! code ELIFECYCLE                                                                                                                                                
npm ERR! errno 1                                                                                                                                                        
npm ERR! m-mall-admin@1.0.0 start: `babel-node ./bin/www`                                                                                                               
npm ERR! Exit status 1                                                                                                                                                  
npm ERR!                                                                                                                                                                
npm ERR! Failed at the m-mall-admin@1.0.0 start script.                                                                                                                 
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.                                                                      
                                                                                                                                                                        
npm ERR! A complete log of this run can be found in:                                                                                                                    
npm ERR!     C:\Users\lenovo\AppData\Roaming\npm-cache\_logs\2019-11-29T16_19_51_799Z-debug.log                                                                         

因为用mall用户连接mall这个db,所以需要在mongoDB中执行以下命令,新建mall用户,对mall这个db有读写权限,密码为test123

use mall;
db.createUser({ user:'mall',pwd:'test123',roles:[ { role:'readWrite', db: 'mall'}]});

修改后重新启动项目,连接成功。
在这里插入图片描述

参考

Nodejs学习笔记(九)— 与Redis的交互(mranney/node_redis)入门目录


作者简介

作者:小碗汤,一位热爱、认真写作的小伙,目前维护原创公众号:『我的小碗汤』,专注于写golang、docker、kubernetes等知识等提升硬实力的文章,期待你的关注。 转载说明:务必注明来源(注明:来源于公众号:我的小碗汤, 作者:小碗汤)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
连接密码MongoDB 数据库需要在 Node.js 中安装 `mongodb` 和 `mongoose` 模块。下面是连接密码MongoDB 数据库的步骤: 1. 安装 `mongodb` 和 `mongoose` 模块 ``` npm install mongodb mongoose --save ``` 2. 创建 `mongoose` 连接 ```javascript const mongoose = require('mongoose'); const username = 'your_username'; const password = 'your_password'; const host = 'your_host'; const port = 'your_port'; const database = 'your_database'; const connectionString = `mongodb://${username}:${password}@${host}:${port}/${database}`; mongoose.connect(connectionString, { useNewUrlParser: true, useUnifiedTopology: true, }) .then(() => console.log('MongoDB connected!')) .catch(err => console.log(err)); ``` 3. 创建 `mongodb` 连接 ```javascript const MongoClient = require('mongodb').MongoClient; const username = 'your_username'; const password = 'your_password'; const host = 'your_host'; const port = 'your_port'; const database = 'your_database'; const connectionString = `mongodb://${username}:${password}@${host}:${port}/${database}`; const client = new MongoClient(connectionString, { useNewUrlParser: true, useUnifiedTopology: true, }); client.connect(err => { if (err) { console.log(err); return; } console.log('MongoDB connected!'); }); ``` 在上述代码中,`username` 和 `password` 分别是 MongoDB 数据库的用户名和密码,`host` 和 `port` 是数据库的地址和端口号,`database` 是要连接的数据库名。`connectionString` 是完整的连接字符串,包含了用户名和密码。在使用 `mongoose` 连接数据库时,需要传递 `useNewUrlParser` 和 `useUnifiedTopology` 选项,以避免出现警告信息。在使用 `mongodb` 连接数据库时,可以通过 `client.connect()` 方法连接数据库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击云原生

众筹一元植发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值