【发布时间】:2018-11-22 11:47:46
【问题描述】:
这是我的 HTML 和 Express 代码的 sn-p:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TEST</title>
</head>
<body>
<form action="http://localhost:3000/tools" method="POST">
<p>
Set name: <input type="text" name="set_name">
</p>
<p>
Description: <input type="text" name="description">
</p>
<input type="submit" value="Submit">
</form>
</body>
</html>
和快递:
const express = require('express');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const {parse}=require('querystring');
const connection = mysql.createConnection({
host: '127.0.0.1',
user: 'root',
password: '',
database: 'toolscatalog'
});
const app = express();
const urlParser=bodyParser.urlencoded({extended:false});
function dbConnection(SQLquery, result) {
connection.connect();
connection.query(SQLquery, (error, results) => {
if (error) throw error;
result.send(results);
console.log(results);
});
connection.end();
}
app.route('/tools')
.get((req, res) => {
dbConnection('SELECT * FROM tools', res);
});
app.post('/tools',urlParser, (req, res) => {
const set_name = req.body.set_name;
const desc = req.body.description;
console.log(set_name, desc); //console: undefined undefined
dbConnection(`INSERT INTO tools(set_name,description) VALUES (${set_name}, ${desc})`, res);
});
app.listen(3000, function () {
console.log('listening on: 3000')
});
MySQL 列是
- id - 自动递增不为空,
- set_name varchar,
- 描述 varchar。
似乎提交表单后,服务器上的bodyParser无法读取表单中的数据。 Console.log 给出了 name 和 desc 变量的 undefined 值。 如何将信息从输入传递到 DB?
另一个问题是 GET 请求。运行服务器后的第一个请求工作正常。从数据库获取数据的第二次请求返回错误并导致服务器崩溃。
【问题讨论】:
-
你是发送
first_name和last_name请求参数在 post 中,你期望如何得到set_name和description? , 做console.log(req.body)你会看到的。 -
我解决了这个问题,但没有任何改变。还是同样的问题。
标签: javascript mysql express put