我创建了一个简单的应用程序来将文件加载到本地路径上。我注意到提交“上传”选项后没有收到任何响应代码。我如何获取成功的响应代码200。
app.js
const express = require("express");
const app = express();
const http = require("http").Server(app).listen(3000);
const upload = require("express-fileupload");
const dialog = require("dialog");
app.use(upload());
console.log("Server Started");
app.get("/", function (req, res) {
res.sendFile(__dirname + "/index.html");
}
)
app.post("/", function (req, res) {
if (req.files) {
//console.log(req.files);
const file = req.files.filename;
const filename = file.name;
console.log(req.body.test_text);
file.mv("./upload/" + filename, function (err) {
if (err) {
console.log(err);
res.send("error occured");
}
else {
//res.send('ok');
// dialog.info("loaded");
console.log("loaded")
}
})
}
})
index.html
<div>
<h1 style="align-content: center">Upload your file here!</h1>
</div>
<div style=" background-color: white;
padding:64px;
display:flex;
align-items:flex-start;
justify-content: flex-start;
box-shadow: 0 15px 30px 0 rgba(0, 0, 0, 0.11), 0 20px 15px 0 rgba(0, 0, 0, 0.08);
box-sizing:border-box">
<form label="upload" method="post" enctype="multipart/form-data" action="/">
<label> Enter reference</label>
<input type="text" name="test_text"></input>
<br><br>
<input type="file" name="filename">
<input type="submit" value="upload">
</form>
</div>
如果您看到以下屏幕截图,则该文件已上传到本地路径。但是,我没有任何成功的响应代码来结束交易。
答案 0 :(得分:0)
最可能是因为未定义req.files
。只需添加另一个条件,即:如果req.files
不存在,则返回响应。
答案 1 :(得分:0)
似乎未定义req.files或在条件中引发某些错误,请始终使用try catch处理这种情况,并同时使用else。
要访问req.file,请使用multer,busboy和npm模块,这也将帮助您上传较大的文件。