Error: Can't set headers after they are sent.

问题描述:

系统:Windows 7 x64

Node.js版本:版本是:v4.2.4 LTS

安装过程参考:《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记

一段后端模拟HTTP请求的代码出现以下错误:Error: Can‘t set headers after they are sent.

如下图:

相关代码:

app.get(‘/trans‘, function (req, res) {
	var body = ‘‘;
	//这是需要提交的数据
	params = { ‘source‘:‘en‘, ‘target‘:‘es‘, ‘text‘:‘hello‘ }
	var data = qs.stringify(params);

	http.get("https://gateway.watsonplatform.net/language-translation/api/v2/translate?" + data, function(gres) {
		console.log("Got response: " + gres);
		gres.on(‘data‘,function(d){
			body += d;
		 }).on(‘end‘, function(){
		  //console.log(gres.headers);
		  console.log(body);
		  res.send(body);
		 });
	}).on(‘error‘, function(e) {
		console.log("Got error: " + e.message);
	});
	res.send(body);
});

问题原因:

出现此错误的原因是因为

http.get

中的响应代码是异步的,

但在它响应之前,也就是最下面的一句“res.send(body);”已经把响应流关闭了。

解决方法:

将最下面的一句“res.send(body);”注释了就OK了。

Error: Can't set headers after they are sent.

时间: 2024-10-07 09:33:11

Error: Can't set headers after they are sent.的相关文章

checking for SSL headers... configure: error: Cannot find ssl headers

" checking for SSL headers... configure: error: Cannot find ssl headers" 原因是缺少openssl-devel,安装这个库就可以解决问题. yum -y install openssl-devel checking for SSL headers... configure: error: Cannot find ssl headers,码迷,mamicode.com

express 遇到问题 - Error: Can't set headers after they are sent

在node配合mongodb,链接数据库,查询所有数据2步操作,都有响应数据返回是会出现 Error: Can't set headers after they are sent,的报错 故障原因:引用 "Can't set headers after they are sent." => "不能发送headers因为已经发送过一次了" => 在处理HTTP请求时,服务器会先输出响应头,然后再输出主体内容,而一旦输出过一次响应头(比如执行过 res.wr

监控服务器Cacti之三 插件安装

Cacti本身可以以图形化界面显示出流量状态,cacti也可以安装插件,通过插件,cacti的功能被进一步强大:可以监控服务器状态:发送邮件通知:短信通知等.0.88之前的版本还需要先安装架构扩展包才能再安装插件,但是到了0.88这个版本,本身就已经被集成了,无需再单独安装架构扩展包了.最新版本cacti-0.8.8a 集成了plugin架构扩展,cacti安装完成后就可以安装其他插件. 插件名称        作用 Monitor插件            友好界面显示监控主机状态 Setti

CentOS7安装nagios并配置出图详解

目录 开始之前 系统环境 监控内容 所需软件包 Centos7重要变化 配置开发环境 同步时间 关闭Selinux 使用CRT上传软件包 安装邮件服务 监控主机安装 常用到的命令 安装nagios所需要的运行环境 增加用户 安装nagios 配置权限 安装插件 安装nrpe 远程主机安装 常用到的命令 配置运行环境 安装nagios-plugin 安装nrpe 启动nrpe. 监控主机安装PNP 配置开发环境 安装php4nagios (版本号为0.6) 配置pnp4nagios 图表展示 问题

从无到有写一个运维APP(三)完结篇

前言:自己的挖的坑还得填,此篇为完结篇,环境的搭建参考第一篇从无到有写一个运维APP(一),至于第二篇就跳过吧,写个APP没那么复杂.由于自己现在无业游民,所以没有什么现成的环境,环境就随便找个公网的..再者当下的完成度应该算不上一个完整的APP,但是作为参考,依瓢画葫芦绝对足够了,如果等完整产品,可能得等一段时间了,下面的是该项目的地址. 项目地址: https://github.com/youerning/MyApp(star一下呗) 效果图如下 文章目录: 准备工作 代理 页面框架 获取数

AngularJS 最常用的八种功能

第一 迭代输出之ng-repeat标签ng-repeat让table ul ol等标签和js里的数组完美结合<ul><li ng-repeat="person in persons">{{person.name}} is {{person.age}} years old.</li></ul>你甚至可以指定输出的顺序:<li ng-repeat="person in persons | orderBy:'name'"

Nagios监控远程主机

p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; line-height: 150%; font-size: 13.5pt; font-family: "Calibri", "sans-serif" } h1 { margin-top: 17.0pt; margin-right: 0cm; margin-bottom: 16.5pt; margin-left:

nagios安装配置

nagios 简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios原名为NetSaint,由Ethan Galstad开发并维护至今.NAGIOS是一个缩写形式: "Nagios Ain't GonnaInsist On Sainthood" Sainthood 翻译为圣徒,而

AngularJS 最常用的功能

第一 迭代输出之ng-repeat标签ng-repeat让table ul ol等标签和js里的数组完美结合 1 2 3 4 5 <ul> <li ng-repeat="person in persons"> {{person.name}} is {{person.age}} years old. </li> </ul> 你甚至可以指定输出的顺序: 1 <li ng-repeat="person in persons |