已连接到数据库,但在我尝试插入数据库时出错 table
Connected to the database but through error when I try to insert into database table
我无法将数据插入数据库。连接到数据库没有问题,但是当我尝试插入 table 时,它出错了。
错误:发生致命错误后无法将查询排队。
我该如何解决这个问题?有人遇到同样的问题吗?
const { redirect } = require("express/lib/response");
const mysql = require('mysql')
let con = mysql.createConnection({
host: process.env.db_host,
database: process.env.db_database,
username: process.env.db_username,
password: process.env.db_password,
port: process.env.db_port
});
con.connect(err=>{
{err===true? console.log(err): console.log("DB connected Successfully!!");;}
})
// Home Page
exports.index = (req,res)=>{
res.render('../views/index', {btnName: 'Save' })
console.log("You are in home page!");
}
// // Add User
// exports.addUser = (req,res)=>{
// res.render('adduser')
// }
exports.adduserpost = (req,res)=>{
const {fname, mname, lname, email, phone} = req.body; //store value from adduser
// console.log({fname, mname, lname, email, phone});
let sql = 'INSERT INTO user_info (fname, mname, lname, email, phone) VALUES (?,?,?,?,?)';
con.query(sql,[fname, mname, lname, email, phone],
(err,result)=>{
if(!err) console.log(result);
else console.log( err);
})
通过这样的错误。
Server connected successfully!!
DB connected Successfully!!
Error: Cannot enqueue Query after fatal error.
at Protocol._validateEnqueue (F:\Project\User_Information_System_v2\node_modules\mysql\lib\protocol\Protocol.js:212:16)
at Protocol._enqueue (F:\Project\User_Information_System_v2\node_modules\mysql\lib\protocol\Protocol.js:138:13)
at Connection.query (F:\Project\User_Information_System_v2\node_modules\mysql\lib\Connection.js:198:25)
at exports.adduserpost (F:\Project\User_Information_System_v2\server\controller\userController.js:53:5)
at Layer.handle [as handle_request] (F:\Project\User_Information_System_v2\node_modules\express\lib\router\layer.js:95:5)
at next (F:\Project\User_Information_System_v2\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (F:\Project\User_Information_System_v2\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (F:\Project\User_Information_System_v2\node_modules\express\lib\router\layer.js:95:5)
at F:\Project\User_Information_System_v2\node_modules\express\lib\router\index.js:281:22
at Function.process_params (F:\Project\User_Information_System_v2\node_modules\express\lib\router\index.js:341:12) {
code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR',
fatal: false
}
您应该更改 connect
错误检查条件。
通过使用 err===true
,如果 err
作为对象存在,消息 DB connected Successfully!!
也会显示。
尝试像这样更改您的代码并查看它是否记录任何错误消息:
con.connect(err=>{
if(err) {
console.log(err);
process.exit(1);
}
console.log("DB connected Successfully!!")
})
我无法将数据插入数据库。连接到数据库没有问题,但是当我尝试插入 table 时,它出错了。
错误:发生致命错误后无法将查询排队。
我该如何解决这个问题?有人遇到同样的问题吗?
const { redirect } = require("express/lib/response");
const mysql = require('mysql')
let con = mysql.createConnection({
host: process.env.db_host,
database: process.env.db_database,
username: process.env.db_username,
password: process.env.db_password,
port: process.env.db_port
});
con.connect(err=>{
{err===true? console.log(err): console.log("DB connected Successfully!!");;}
})
// Home Page
exports.index = (req,res)=>{
res.render('../views/index', {btnName: 'Save' })
console.log("You are in home page!");
}
// // Add User
// exports.addUser = (req,res)=>{
// res.render('adduser')
// }
exports.adduserpost = (req,res)=>{
const {fname, mname, lname, email, phone} = req.body; //store value from adduser
// console.log({fname, mname, lname, email, phone});
let sql = 'INSERT INTO user_info (fname, mname, lname, email, phone) VALUES (?,?,?,?,?)';
con.query(sql,[fname, mname, lname, email, phone],
(err,result)=>{
if(!err) console.log(result);
else console.log( err);
})
通过这样的错误。
Server connected successfully!!
DB connected Successfully!!
Error: Cannot enqueue Query after fatal error.
at Protocol._validateEnqueue (F:\Project\User_Information_System_v2\node_modules\mysql\lib\protocol\Protocol.js:212:16)
at Protocol._enqueue (F:\Project\User_Information_System_v2\node_modules\mysql\lib\protocol\Protocol.js:138:13)
at Connection.query (F:\Project\User_Information_System_v2\node_modules\mysql\lib\Connection.js:198:25)
at exports.adduserpost (F:\Project\User_Information_System_v2\server\controller\userController.js:53:5)
at Layer.handle [as handle_request] (F:\Project\User_Information_System_v2\node_modules\express\lib\router\layer.js:95:5)
at next (F:\Project\User_Information_System_v2\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (F:\Project\User_Information_System_v2\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (F:\Project\User_Information_System_v2\node_modules\express\lib\router\layer.js:95:5)
at F:\Project\User_Information_System_v2\node_modules\express\lib\router\index.js:281:22
at Function.process_params (F:\Project\User_Information_System_v2\node_modules\express\lib\router\index.js:341:12) {
code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR',
fatal: false
}
您应该更改 connect
错误检查条件。
通过使用 err===true
,如果 err
作为对象存在,消息 DB connected Successfully!!
也会显示。
尝试像这样更改您的代码并查看它是否记录任何错误消息:
con.connect(err=>{
if(err) {
console.log(err);
process.exit(1);
}
console.log("DB connected Successfully!!")
})