【express】get,post中间件调用注意
背景:
自己做了一个小工具,打算用express来读写本地文件,于是用get/post中间件来给前端返回请求结果。
问题:
前端调用的请求一直处于pending状态,最后自动超时报错
解析和解决办法:
前端收到了express返回的文件流,但是并没有收到状态变更的结果(如:200,500等),所以前端请求一直在pending。
通过给前端返回状态码 res.status(200) 解决问题:
const fs = require("fs");
var express = require("express");
var app = express();
app.get("/getFile", function(req, res){
fs.createReadStream(req.query.filename)
.on("data", (data)=>{
// handle file data
})
.on("end", ()=>{
// read file ended
res.status(200).send("success!")
})
.on("error", (err)=>{
res.status(500).send(err);
})
})