POST方法未在Express JS中获得任何响应代码

时间:2019-04-17 14:51:35

标签: javascript node.js express

我创建了一个简单的应用程序来将文件加载到本地路径上。我注意到提交“上传”选项后没有收到任何响应代码。我如何获取成功的响应代码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>

如果您看到以下屏幕截图,则该文件已上传到本地路径。但是,我没有任何成功的响应代码来结束交易。

enter image description here

2 个答案:

答案 0 :(得分:0)

最可能是因为未定义req.files。只需添加另一个条件,即:如果req.files不存在,则返回响应。

答案 1 :(得分:0)

似乎未定义req.files或在条件中引发某些错误,请始终使用try catch处理这种情况,并同时使用else。

要访问req.file,请使用multer,busboy和npm模块,这也将帮助您上传较大的文件。