首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >节点js :错误[ERR_STREAM_WRITE_AFTER_END]:结束后写入

节点js :错误[ERR_STREAM_WRITE_AFTER_END]:结束后写入
EN

Stack Overflow用户
提问于 2021-06-30 07:17:53
回答 1查看 393关注 0票数 0

这是我的代码:

代码语言:javascript
运行
复制
const fs = require("fs");

// creat the server
const server = http.createServer((req, res) => {
    console.log(req.url, req.method);
    res.write("hello out there nice try");
    res.end();

    fs.readFile('./index.html', (err, data) =>{
        if(err){
            console.log(err);
            res.end();
        } else{
            res.write(data);
            res.end();
    }})
});

server.listen(3000, 'localhost', () =>{
    console.log("the server is running");

});

每当我运行它的时候,我都会得到这样的错误:

代码语言:javascript
运行
复制
/ GET
events.js:352
      throw er; // Unhandled 'error' event
      ^

Error [ERR_STREAM_WRITE_AFTER_END]: write after end
    at writeAfterEnd (_http_outgoing.js:694:15)
    at write_ (_http_outgoing.js:706:5)
    at ServerResponse.write (_http_outgoing.js:687:15)
    at /Users/khadija/Desktop/first-project/app.js:15:17
    at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:73:3)
Emitted 'error' event on ServerResponse instance at:
    at writeAfterEndNT (_http_outgoing.js:753:7)
    at processTicksAndRejections (internal/process/task_queues.js:83:21) {
  code: 'ERR_STREAM_WRITE_AFTER_END'
} 

服务器正在运行,但它没有读取index.html文件,这与异步有关吗?

EN

Stack Overflow用户

回答已采纳

发布于 2021-06-30 07:25:59

在结束响应流之后,您不能写入响应流。

这里:

代码语言:javascript
运行
复制
res.write("hello out there nice try");
res.end();

您似乎想要一个单独的条件分支。其中,如果满足某些条件,则编写“不错的尝试”,否则编写index.html的内容。

因此,您应该这样做:

代码语言:javascript
运行
复制
if (something) {
    res.write("hello out there nice try");
    res.end();
} else {
    fs.readFile('./index.html', (err, data) =>{
        if(err){
            console.log(err);
            res.end();
        } else{
            res.write(data);
            res.end();
    }});
}

如果你不那么困惑的话,还有fs.readFileSync。不过,只要你不过早地结束流,你拥有它的方式应该不会有任何问题。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68186688

复制
相关文章

相似问题

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