Couchbase ответ | Узел отображения данных - PullRequest
0 голосов
/ 24 марта 2020

Я новичок в Node / реагирую, но пытаюсь подключиться к couchbase и получить детали, используя идентификатор. Я ударил API почтальоном и в консоли, я вижу данные, но также я вижу ошибку ниже: Есть ли что-то, что я делаю неправильно? Тестовая проверка _http_outgoing. js: 485 выбрасывать новый ERR_HTTP_HEADERS_SENT ('set'); ^ Ошибка [ERR_HTTP_HEADERS_SENT]: Невозможно установить заголовки после того, как они отправлены клиенту в ServerResponse.setHeader (_http_outgoing. js: 485: 11)

    var couchbase = require('couchbase');
exports.getMById = (req, res, next) => {
  if (req && req.params && req.params.id) {
    const getMByIdSuccCB = result => {
      console.log("Test check",result);
     res.json(result);
        };
    const getMByIdErrCB = error => {
      res.json(error);
    };
    getMById(getMByIdSuccCB, getMByIdErrCB);
  } else {
    res.status(400).json({ error: 'Bad Request' });
  }
  function getMById(successCB, errorCB) {
    try {
      const cluster = new couchbase.Cluster('couchbase://IP');
      cluster.authenticate("username", 'password');
      const bucket = cluster.openBucket('mybucket', function (err) {
        console.log("DB Connected");
        if (err) {
          console.error('Got error: %j', err);
        }
      });
      const N1qlQuery = couchbase.N1qlQuery;
      const q = N1qlQuery.fromString(`SELECT * FROM mybucket WHERE IHGId = '${req.params.id}'`);
      const result = cluster.query(q, function (err, response) {
        console.log("Result:", response);
        //res.end(response);
       successCB(response);
      });
      console.log("result",result);
      if (err) {
        console.log(err);
      };
    }
    catch (Exception) {
      errorCB({ message: Exception, status: 500 });
    };
  }
}

1 Ответ

0 голосов
/ 25 марта 2020

Попробуйте вызвать res.json() в getMById (successCB, errorCB) вместо exports.getMById.

...