在node.jsexpress应用程序中,req.body没有得到<text区域>价值

in node.js express app, req.body does not get <textarea> value?

本文关键字:lt text 价值 gt 区域 应用程序 jsexpress node body req      更新时间:2023-09-26

我正在node.js中使用一个express应用程序。我有以下html表单(inputForm.html):

<form action="/" method="post">
Name: <br>
    <input type="text" name="name" size="45">
    <br>
    Document: <br>
    <textarea> <input type="text" name="document" size="45"> </textarea>
    <br>
    <br>
<input type="submit">
</form>

和以下javascript文件:

app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.use(bodyParser.json({type: 'application/vnd.api+json' }));
app.get('/', function (req, res) {
  res.sendFile(__dirname + "/" + "inputForm.html");
});
app.post('/', function (req, res) {
    var name = req.body.name;
    var document = req.query.document;
    console.log(req.body);
});

但是,当我将req.body打印到控制台时,只显示第一个值(名称)。如果删除textarea标记,文档也会显示出来。但是,我想保留它,因为我想在文档输入中保留自然换行符。有人知道我需要做什么来解决这个问题吗?

非常感谢!

document是文本区域的默认值的文本的一部分。

文本区域本身没有name,因此它不可能是一个成功的控件,也不会向服务器提交任何数据。

给它起个名字。

<textarea name="document"> &lt;input type=&quot;text&quot; name=&quot;document&quot; size=&quot;45&quot;&gt; </textarea>