Couchbase Insert - TypeError: Преобразование круговой структуры в JSON

0

Я пытаюсь выполнить простую операцию CRUD в Couchbase из формы AngularJS, но я продолжаю получать эту ошибку:

TypeError: Converting circular structure to JSON

Вот основные фрагменты от AngularJS и Express.js. Любая помощь будет оценена.

//AngularJS
$http.post('docs', $scope.doc).then(function(res) {
    console.log(res);
}, function(err) {
    console.log(err);
});

//Express.js
router.post('', function(req, res, next) {

    db.upsert('anyname', req.body, function(error, result) {
      if (error) {
        console.log('operation failed', error);
        return;
      }

      res.send(res);
    });

});

Подробная ошибка от терминала:

/Users/name/Workspace/sb-couchbase/node_modules/express/lib/response.js:242
  var body = JSON.stringify(val, replacer, spaces);
                  ^

TypeError: Converting circular structure to JSON
    at Object.stringify (native)
    at ServerResponse.json (/Users/name/Workspace/sb-couchbase/node_modules/express/lib/response.js:242:19)
    at ServerResponse.send (/Users/name/Workspace/sb-couchbase/node_modules/express/lib/response.js:151:21)
    at /Users/name/Workspace/sb-couchbase/routes/document.js:36:8
Теги:
express
couchbase

2 ответа

0

Проблема заключалась в простой ошибке Express.js. Конечная точка res.send(res) должна быть res.send (результат). Это поставило проблему.

Так:

//Express.js
router.post('', function(req, res, next) {

    db.upsert('anyname', req.body, function(error, result) {
      if (error) {
        res.send(error);
        return;
      }

      res.send(result);
    });

});
0

Это не вызвано Couchbase, а путем преобразования вашей объектной сетки в JSON. Если объект a содержит ссылку на объект b, а b содержит ссылку на (возможно, через некоторые промежуточные объекты), из этого получится бесконечная строка JSON.

Разнообразные решения для этого обсуждались, например, в ошибке Chrome sendrequest: TypeError: преобразование круговой структуры в JSON.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню