gpt4 book ai didi

node.js - Express.js sendFile 返回 ECONNABORTED

转载 作者:搜寻专家 更新时间:2023-10-31 23:37:40 25 4
gpt4 key购买 nike

在运行 Express.js (3.8.6) 的简单 Node 服务器上。我正在尝试使用 sendFile 向客户端发送一个简单的 HTML 文件。

  • 从读取的文件中可以看出路径是正确的。
  • 缓存在浏览器上被禁用。
  • 显示的代码是 server.js 文件,直接从 Node 运行

我错过了什么?

代码

//server.js

var http = require("http");
var express = require("express");
var app = express();
var server = http.createServer(app);
var path = require('path');

//Server views folder as a static in case that's required for sendFile(??)
app.use('/views', express.static('views'));
var myPath = path.resolve("./views/lobbyView.html");

// File Testing
//--------------------------
//This works fine and dumps the file to my console window
var fs = require('fs');
fs.readFile(myPath, 'utf8', function (err,data) {
console.log (err ? err : data);
});

// Send File Testing
//--------------------------
//This writes nothing to the client and throws the ECONNABORTED error
app.get('/', function(req, res){
res.sendFile(myPath, null, function(err){
console.log(err);
});
res.end();
});

项目设置

Project Setup

最佳答案

您过早地调用了 res.end()。请记住,Node.js 是异步的,因此您实际做的是在它完成之前取消您的 sendFile。将其更改为:

app.get('/', function(req, res){
res.sendFile(myPath, null, function(err){
console.log(err);
res.end();
});
});

关于node.js - Express.js sendFile 返回 ECONNABORTED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36949557/

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