javascript - 提取表单数据并使用 node.js 发送到我的数据库

标签 javascript node.js mongodb mongoose

我正在尝试从 html 表单中提取数据并将其发送到我的数据库。我使用的是node.js、mongodb 和mongoose。

我有一个这样的表格:

<form>                                      
   <label for="name">Nome:</label>
   <input type="text" id="name">

    <label for="email">Email:</label>
    input type="text" id="email">

    <button id="send" type="submit">Send</button>
</form>

我要保存的代码已准备就绪,我只是不知道如何提取字段的值。

这是我的路线:

router.get('/', function(req, res) {
    res.render('client');
});

我已经准备好了这段代码:

var person = {
    name: req.params.name,
    email: req.params.email
};

var data = new dataSchema(person);

data.save(function (error, data){
    if(error) {
        console.log(error);
        res.json(data);
    }
    else {
        res.json(data);
    }
});

其余的代码(新模式、mongoose.model 等.. 是完美的)。现在剩下的就是提取表单的字段。

更新..

rdegges 有问题,这是我现在的代码:

    <form method="post">
       <label for="name">Nome:</label>
       <input type="text" id="name">

        <label for="email">Email:</label>
        <input type="text" id="email">

        <button id="send" type="submit">Send</button>
    </form>

在我的 route :

var express = require('express');
var router = express.Router();

var bodyParser = require('body-parser');
var app = express();

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


router.get('/login', function(req, res) {
  res.render('client/index');
});

router.post('/login', function(req, res) {
  res.json(req.body); // handle the user form data
  console.log(req.body);
});

有什么问题吗?该对象是空的。

enter image description here

最佳答案

您需要使用 body-parser 中间件,如下所示:

var app = express();
var bodyParser = require('body-parser');

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

app.post('/', function(req, res) {
  res.json(req.body); // req.body is your form data
});

如果您执行上述操作,您将能够在代码中使用 req.body 来访问表单数据,然后您可以将其传递给 mongoose 来保存您的模型。

此外,您很可能希望将 HTML 表单修改为如下所示:

<form method="post">
</form>

这意味着您将创建一个到服务器的 POST 请求,您将在路由中使用该请求。

这是一个例子:

app.get('/login', function(req, res) {
  // render the form
  res.render('login');
});

app.post('/login', function(req, res) {
  res.json(req.body); // handle the user form data
});

关于javascript - 提取表单数据并使用 node.js 发送到我的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27449970/

相关文章:

javascript - 如何让 ngclick 像切换一样工作?

javascript - Web 表单提交将我的浏览器引导至错误页面

javascript - 将变量从 jade 传递到 javascript

javascript - 使用 npm 打包 javascript 项目并将其划分为 Node 模块以创建依赖树

MongoDB 分组+排序不起作用

mongodb - 错误 : not authorized on db to execute command

javascript - AngularJS 指令通过 templateUrl 函数传递参数

javascript - AngularJS:ui-router href 重写为 ui-sref

Visual Studio 12 中不显示 Node.js 交互窗口

javascript - 如何在node js中从json结果中获取键值