HTML表单将数据发送到MySQL

时间:2015-03-31 14:45:13

标签: javascript html mysql node.js

我正在尝试使用Node.js将数据发布到MySQL数据库。

这是我的htmlHTML表单:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>form</title>
</head>
<body>
<h1>This is my form</h1>
<!-- local host to be changed?  -->
<form action="http://localhost:3000/index.html" method="POST">
    First name:<br>
    <input type="text" name="firstname" value="John">
    <br>
    Last name:<br>
    <input type="text" name="lastname" value="Doe">
    <br><br>
    <input type="submit" value="Submit">
</form>
</body>
</html>

这是我的MySQL.js

var mysql = require('mysql');

var connection = mysql.createConnection(
    {
      host     : 'mysqlhost',
      port     : '3306',
      user     : 'myuser',
      password : 'mypassword',
      database : 'myuser'
    } ); connection.connect(); var query = connection.query('SELECT * FROM http://localhost:3000/index.html');

query.on('error', function(err) {
    throw err; });

query.on('fields', function(fields) {
    console.log(fields); })

query.on('result', function(row) {
    console.log(row); }); connection.end();

这甚至可能吗?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的,但你绝对不会朝着正确的方向前进。我建议学习如何制作一个简单的REST API节点应用程序来开始。这个tutorial是一个很好的起点。我建议使用Express,因为它简化了处理POST / GET请求的任务。

以下是可以满足您需求的初学者代码。

的index.html

请注意我在/data部分中使用localhost:3000/index.html代替<form action=...>的方法。这通常称为REST api。

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>form</title>
</head>
<body>
<h1>This is my form</h1>
<!-- local host to be changed?  -->
<form action="/data" method="POST">
    First name:<br>
    <input type="text" name="firstname" value="John">
    <br>
    Last name:<br>
    <input type="text" name="lastname" value="Doe">
    <br><br>
    <input type="submit" value="Submit">
</form>
</body>
</html>

app.js

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

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

app.get('/', function(req, res) {
    res.sendFile(path.join(__dirname, 'index.html'));
});

app.post('/data', function(req, res) {
    console.log(req.body.firstname);
    console.log(req.body.lastname);
    // Add these values to your MySQL database here
});

app.listen(3000);

文件结构

app.js
index.html

要运行的命令

npm install express
npm install body-parser
node app.js

然后只需转到浏览器中的localhost:3000即可。