gpt4 book ai didi

mysql - 使用 Node.js 和 MySQL 时服务器响应出现 TypeError

转载 作者:可可西里 更新时间:2023-11-01 08:24:10 28 4
gpt4 key购买 nike

我无法将我的 html 文件中的表单数据发布到 MySQL 中。我不断收到服务器响应的语法错误,并且数据未保存在 MySQL 数据库中。我已经在下面发布了代码和错误。我正在努力解决这个问题。

服务器响应错误

TypeError: this._callback.apply 不是 Query.Sequence.end 处的函数

index.html

<form action="/" method="post">
<input id="name" type="text" name="name" placeholder="Type your name...">
<input id="message" type="text" name="message" placeholder="Type message...">
<input class="submit_message" type="submit" value="Send">
</form>

server.js

var express = require('express');
var app = express();
var mysql = require('mysql');
var bodyParser = require('body-parser');
var urlencodedParser = bodyParser.urlencoded({ extended: false });

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
app.use('/', express.static(__dirname + '/'));

var connection = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "mywebsite"
});

connection.connect();

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

app.post('/', function(req, res) {
var username = req.body.name;
var usermessage = req.body.message;
connection.query("INSERT INTO `users` (Name, Message) VALUES (?)", username.toString(), usermessage.toString(), function(err, result) {
if(err) throw err;
console.log("1 record inserted");
});
res.send(username + " - " + usermessage);
});

connection.end();

app.listen(3000, function () {
console.log('Listening on port 3000');
});

最佳答案

connection.query 中使用占位符值时,它们必须是值数组或对象。但是您将每个值作为不同的参数传递,并且其中一个被用作回调参数,这就是您收到该错误的原因。

.query(sqlString, values, callback)

改用这个:

connection.query("INSERT INTO `users` (Name, Message) VALUES (?,?)", [username.toString(), usermessage.toString()], function(err, result) {})

或者使用命名的占位符

const placeholders = { name: username.toString(), message: usermessage.toString() };

connection.query("INSERT INTO `users` (Name, Message) VALUES (:name,:message)", placeholders, function(err, result) {})

关于mysql - 使用 Node.js 和 MySQL 时服务器响应出现 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50120077/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com