【问题标题】:Credential error while accessing data via nodejs through couchdb通过 couchdb 通过 nodejs 访问数据时出现凭据错误
【发布时间】:2020-05-29 20:50:38
【问题描述】:

我正在尝试使用 node js 和 angular 来制作前端。 对于后端,我尝试在代码中访问 c​​ouchdb 数据,如下所示:

const express = require('express');  
const bodyParser = require('body-parser');  
const path = require('path');  
const NodeCouchdb = require('node-couchdb');  
  
const couch = new NodeCouchdb({  
auth:{  
user: 'admin'  
password: '**'  ///hidden for security
}  
});  
couch.listDatabases().then(function(dbs){  
console.log(dbs);  
});  
  
const app = express();  
app.set('view engine', 'ejs');  
app.set('views', path.join(__dirname, 'views'));  
app.use (bodyParser.json());  
app.use(bodyParser.urlencoded({extended: false}));  
app.get('/', function(req,res){  
 res.render('index');  
});  
app.listen(3000, function(){  
 console.log('Server is started on Port 3000');  
})  

我的 couchdb 主机是这样的 *http://admin@***@172.26.132.189:5984*

上面的代码只是试图列出我沙发数据库服务器中的数据库。但是当我运行代码时,它给了我以下错误: {error:unauthorised: 名称或密码不正确}

我尝试在上面的代码中通过添加这些行来定义我的主机:

const couchExternal = new NodeCouchDb({
    host: 'couchdb.external.service',
    protocol: 'https://172.26.132.189',
    port: 5984
});

但仍然给我同样的错误。

我提供了正确的凭据。 有人可以帮我解决问题或告诉我哪里出错了吗?

【问题讨论】:

  • :/5984 ...你确定/应该在那里吗?通常使用:5984 声明端口
  • 另外,const couch = NodeCouchdb({ 不应该是const couch = new NodeCouchdb({
  • 第三,协议应该是https而不是https://172.26.132.189,因为https是协议,但https://172.26.132.189不是
  • @JaromandaX 问题中有一些错别字,所以我编辑了它们..抱歉
  • @JaromandaX 我已经尝试了所有将协议作为 https 并将主机作为 URL 但仍然没有解决错误

标签: javascript node.js angular npm couchdb


【解决方案1】:

您在用户之后缺少一个逗号,即它应该是这样的:用户:'admin',密码....等等,因为 auth 是一个对象变量。查看此视频以获取更多帮助: https://www.youtube.com/watch?v=R6LUMXrAoCE&list=PLx3witYKF_5KjQj8i_OTrYbm8WNcZdccG

【讨论】:

  • 我同意你的回答。但是,当您链接视频时,最好在您所指的点上添加时间戳。对于如此简单的修复,35 分钟的视频似乎有点长。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-07
相关资源
最近更新 更多