我的任务是使用带有两个端点的node.js设置一个ouchbase服务器。
当我想连接水桶时
我得到如下所示的错误:


  CouchbaseError:身份验证失败。您可能提供了无效的用户名/密码组合
    消息:“身份验证失败。您可能提供了无效的用户名/密码组合”,
    代码:2


我的代码app.js如下

var express = require("express");
var couchbase = require("couchbase");
var bodyParser = require("body-parser");

var cluster = new couchbase.Cluster('couchbase://localhost');
var bucket = cluster.openBucket('example'); //the name of bucket is 'example'
bucket.on('error', function(err) {
  console.log('Bucket: CONNECT ERROR:', err);});

var app=express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));

// create two endpoints

app.get("/person/:id", function(req, res){
  bucket.get(req.params.id, function (error, result){
     if(error){
         console.log("error in get method");
         return res.status(400).send(error);
     }
     res.send(result);
 });
});

app.post("/person/:id", function(req, res){
  var document = {
    firstName :req.body.firstName,
    lastName : req.body.lastName
  }
  bucket.upsert(req.params.id, function (error, result){
    if(error){
        console.log("error in post method");
        return res.status(400).send(error);
    }
    res.send(result);
 });
});

var server = app.listen(3000, function(){
  console.log("Listening on port %s...", server.address().port);
});

最佳答案

建立数据库连接时,您需要给该Couchbase登录凭据(cluster.authenticate)。

    var cluster = new couchbase.Cluster('couchbase://localhost');
    cluster.authenticate('username', 'password');
    var bucket = cluster.openBucket('database-name'); //the name of bucket
    bucket.on('error', function(err) {
      console.log('Bucket: CONNECT ERROR:', err);});

关于node.js - 验证失败。 Couchbase中的OpenBucket,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49851923/

10-10 00:32