【问题标题】:How to get value of textarea on submit of form in nodejs如何在nodejs中提交表单时获取textarea的值
【发布时间】:2019-11-04 13:08:58
【问题描述】:

我在 req.body.numbers 上未定义。 nodejs中如何获取textarea的值。

<form method="POST" action="/messaging">
    <h4>Mobile Numbers</h4>
    <textarea id="numbers" class="number-area" name="numbers"></textarea>
    <h4>Add a Message</h4>
    <textarea id="message" class="message-area" name="message"></textarea>
    <br>
    <div>
        <button class="btn btn-outline-success" type="submit">
            Send
        </button>
    </div>
</form>
exports.postMessaging = (req, res, next) => {
  const numbers = req.body.numbers;
  console.log(numbers);

【问题讨论】:

  • 请分享你的nodejs代码:)
  • 如果你也检查 req.body.messages 你会得到 undefined 吗?

标签: javascript html node.js ejs


【解决方案1】:

post 将帮助您了解如何将数据从 HTML 发送到 node.js 代码。

已编辑

App.js

const express = require('express');
const bodyParser = require('body-parser');
const app = exports.module = express();
app.use(bodyParser.urlencoded({ extended: true })); 

app.post('/test', function(req, res) {
  var lName = req.body.lname;
  var number = req.body.numbers;
  res.send();
})

app.listen(1337, function() {
  console.log('App is running on 1337');
})

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <form action="http://localhost:1337/test" method="POST">
        <input name="lname" id="lname"/>
        <textarea id="numbers" class="number-area" name="numbers"></textarea>
        <button type="submit">Submit</button>
    </form>
</body>
</html>

package.json - 供您参考

"body-parser": "^1.19.0",
"express": "^4.17.1"

上面的代码正在工作并接受req.body.numbers 中的textarea 数字ID。 urlencoded 扩展值为真extended: true 不是extended: false

【讨论】:

  • @Dubeysaivithalteja,检查编辑的答案供您参考。
【解决方案2】:
  1. 您应该使用&lt;form&gt;
  2. 您还需要一个按钮来提交表单。
  3. 您可以使用expressbody-parser 捕获&lt;textarea&gt;&lt;input&gt; 的值。

const express = require("express");
const app = express();
const bodyParser = require("body-parser");

const port = 3000;

app.use(bodyParser.urlencoded({extended: false}));

app.post("/link", (req,res) => {
  console.log(req.body.numbers);
  // body came with body-parser
  // numbers is name of textarea
});

// req is request and res is response

app.listen(port, () => {
  console.log("server launched");
});
<h4>Mobile Numbers</h4>

<form action="/link" method="POST">
  <textarea id="numbers" class="number-area" name="numbers"></textarea>
  <button type="submit">Submit</button>
</form>

【讨论】:

  • 我已经有了这个,我正在使用 bodyparser 获取用户的输入,但它返回 undefined for textarea
猜你喜欢
  • 2011-03-04
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2010-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多