从express js访问HTML元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从express js访问HTML元素相关的知识,希望对你有一定的参考价值。

我使用快速js创建了示例应用程序,以便在本地路径上上传文件。

app.js

    const express = require("express");
    const app = express();
    const http = require("http").Server(app).listen(3000);
    const upload = require("express-fileupload");

    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;

        file.mv("./upload/" + filename, function (err) 
        if (err) 
            console.log(err);
            res.send("error occured");
        
        else 
            res.send("Done");
        
        )
    
    )

的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"></input>
        <br><br>
        <input type="file" name="filename">
        <input type="submit" value="upload">
    </form>
    </div>

我需要帮助来访问app.js文件中输入type =“text”上输入的文本内容。任何帮助,将不胜感激。

答案

你必须给name字段一个type=text属性。然后,您可以使用名称访问该字段。假设您已将其设置为<input type="text" name="user_input"></input>。现在从你的app.post你可以访问它req.body.user_input

另一答案

你有两个主要问题。

You aren't sending the data

只有带名称的表单控件才能成功控件。某些东西必须等于输入的值。

为输入命名:

<input type="text" name="foo">

You aren't looking for the data

然后你正在使用的身体解析器(Busboy,包装在express-fileupload中)将填充req.body对象,以便您可以通过req.body.foo访问它。

Asides

  • HTML中禁止使用<input>元素的结束标记。使用验证器:https://validator.nu/
  • 如果没有for属性或其中的表单控件,标签就没用了。见this guide

以上是关于从express js访问HTML元素的主要内容,如果未能解决你的问题,请参考以下文章

使用绑定从片段访问父活动的 UI 元素

如何从 Android 中的 Fragment 访问 UI 元素?

从 POST 访问中隐藏 Node.js&Express 中的错误消息

前端开发常用js代码片段

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

前端开发中最常用的JS代码片段