import http = require('http');
const fs = require("fs");
var port = process.env.port || 8888
var i = 1;
var contents;
http.createServer(function (req, res) {
res.writeHead(200, { "Content-Type": "text/html" });
console.log(i++ + "\n" + req.connection.remoteAddress);
fs.open('1.html', "a+", (Error, fd) => {
res.write(fd);
});
res.end();
}).listen(port);
好的,我们这里有代码,问题是我有一个Write after end
错误,即使在代码结尾有一个写入和结束,所以如果有人能告诉我我做错了什么,请。(我试图从docs和writ函数复制所有内容。)
HTML code:
script src="1.js"
script
这个JS也是:
var a = prompt("a size",0);
var h = prompt("h size",0);
var b = prompt("b size",0);
var c = prompt("c size",0);
var angle_a = prompt("angel acros a",0);
var angle_b = prompt("angel acros b",0);
var angle_c = prompt("angel aacros c",0);
var Perimetr =prompt("P",0);
var R_In = prompt("radius In",0);
var R_Out = prompt("radius Out",0);
var S=0;
var angle_a_sin = Math.sin((angle_a /180) * Math.PI);
var angle_b_sin = Math.sin((angle_b /180) * Math.PI);
var angle_c_sin = Math.sin((angle_c /180) * Math.PI);
var angle_a_cos = Math.cos((angle_a /180) * Math.PI);
var angle_b_cos = Math.cos((angle_b /180) * Math.PI);
var angle_c_cos = Math.cos((angle_c /180) * Math.PI);
a = a *1;
b = b *1;
c = c *1;
if(Perimetr==0&& a>0 && b>0&& c>0){
Perimetr=a+b+c-0;
}
if(Perimetr>0&& a>0 && b>0 && c==0){
c=Perimetr-a-b;
}
if(Perimetr>0&& a>0 && b==0 && c>0){
b=Perimetr-a-c;
}
if(Perimetr>0&& a==0 && b>0 && c>0){
a=Perimetr-c-b;
}
if(a>0 && h>0){
S=(a*h)/2;
}
if(a>0 && b > 0 && angle_a_sin > 0 &&S==0){
S=(a*b*angle_a_sin)/2;
}
if(Perimetr>0 &&S==0){
S=Math.sqrt(Perimetr*(Perimetr-a)*(Perimetr-b)*(Perimetr-c));
}
if(a>0&&b>0&&c>0&&R_In>0 &&S==0){
S=(a*b*c)/4*R_In;
}
if(Perimetr>0&&R_Out>0 &&S==0){
S=Perimetr*R_Out;
}
if(a>0&&b>0&&c>0){
angle_a_cos=((b*b)+(c*c)-(a*a))/(2*b*c);
angle_a=Math.acos(angle_a_cos) *180/Math.PI;
}
if(a>0&&b>0&&c>0){
angle_b_cos=((a*a)+(c*c)-(b*b))/(2*a*c);
angle_b=Math.acos(angle_b_cos) *180/Math.PI;
}
if(a>0&&b>0&&c>0){
angle_c_cos=((b*b)+(a*a)-(c*c))/(2*a*b);
angle_c=Math.acos(angle_c_cos) *180/Math.PI;
}
if(S==0){
alert("Not enough data");
}
谢谢大家。
答案 0 :(得分:1)
错误:写完后
您收到此错误是因为您在发送响应对象后正在写入该响应对象。理想情况下,订单应该是
res.status(msg);
res.end();
另外,你正在通过fd写作。这可能会导致
TypeError [ERR_INVALID_ARG_TYPE]:第一个参数必须是字符串或缓冲区之一
根据docs,您需要传递string
或Buffer
。
对您的代码进行更改。
http.createServer(function (req, res) {
res.writeHead(200, {"Content-Type": "text/html"});
console.log(i++ + "\n" + req.connection.remoteAddress);
fs.open('1.html', "a+", (Error, fd) => {
res.write(fd+'');
res.end();
});
}).listen(port);