首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >需要一种在couchbase DB调用"Error:无法在发送后设置标头“之后设置res对象的方法

需要一种在couchbase DB调用"Error:无法在发送后设置标头“之后设置res对象的方法
EN

Stack Overflow用户
提问于 2016-06-25 16:32:52
回答 1查看 29关注 0票数 0
代码语言:javascript
运行
复制
var express = require('express');

var search = express.Router();

search.get('/', function(req, res, next) {
    console.log('1');

    dbCall(function(error, result) {
        if (error) {
            res.status(404).json();
        } else {
            res.json(result);
        }
    });

    console.log('last');
    next();
});

var dbCall = function(callback) {
    var couchbase = require('couchbase');
    var cluster = new couchbase.Cluster('couchbase://127.0.0.1');
    var bucket = cluster.openBucket('default');

    var doc;

    var ViewQuery = couchbase.ViewQuery;

    var query = ViewQuery.from('dev_test', 'allData');

    bucket.query(query, function(err, viewResults) {
        if (err) {
            callback(err, null);
        } else {
            console.log('inqueryCall');
            var results = viewResults;
            callback(null, results);
            console.log(results);
        }
    });
};

module.exports = search;

我得到的错误是:错误:无法在发送后设置标头。在ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:346:11)

有人能在这里解释一下这个问题(不仅仅是解决方案)吗?

我添加了console.log,这里的问题是对异步的couchbase调用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-25 16:44:41

删除next()调用,这将导致此错误。next()在中间件中用于将流传递给下一个中间件或端点/路由。

代码语言:javascript
运行
复制
search.get('/', function(req, res, next) {

   dbCall(function(error, result) {
       if (error) {
           res.status(404).json();
       } else {
           res.json(result);
       }
   });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38030579

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档