gpt4 book ai didi

node.js - 结束后写入错误

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:15 25 4
gpt4 key购买 nike

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 错误,即使在代码末尾有一次写入和结束,所以如果有人可以告诉我我在做什么请错了。(我也尝试从文档中复制所有内容并使用令状功能。)

HTML 代码:

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");
}

谢谢大家。

最佳答案

Error: write after end

您收到此错误是因为您在发送响应对象后对其进行写入。理想情况下,顺序应该是

res.status(msg);
res.end();

此外,您正在传递 fd 进行写入。这可能会导致

TypeError [ERR_INVALID_ARG_TYPE]: The first argument must be one of type string or Buffer

根据docs ,您需要传递 stringBuffer

对您的代码进行这些更改。

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);

关于node.js - 结束后写入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50078008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com