gpt4 book ai didi

mysql - 如何在node js mysql中解析电子邮件?

转载 作者:行者123 更新时间:2023-11-29 17:18:23 24 4
gpt4 key购买 nike

我创建了一个包含以下字段的普通注册表单:姓名、电子邮件、出生日期、性别、密码我正在使用express.js,在帖子路由中我通过以下方式访问它请求体。(参数)

console.log(req.body) 显示所有参数。

现在我有 mysql 表,其列与前面提到的相同。如果我确实使用纯字符串(例如:abcs)插入,它就会起作用,即将值插入到 mysql 表中。此外,表单中的电子邮件是数据库中的用户名。当我尝试插入所有字段时,它显示错误:(未知的用户名字段)。 username varchar(50) 是它的定义。在日志中,我看到密码字段的输入用单引号引起来,但对于电子邮件,它变成:('user@mail'.'com')。我还使用了 knex,mysql 文档中提到的替代方法,并得到了相同的错误(未知用户名)。

有人可以告诉我如何通过nodejs+express将电子邮件存储在mysql数据库中

db.js

var mysql = require('mysql');

// setup mysql
var dbcon = mysql.createConnection({
host: 'localhost',
database: 'test',
user: 'flip',
password: 'flop'
});

dbcon.connect(function (err) {
if (err) throw err;
console.log("Connected to db");
});
module.exports = dbcon;

routes/index.js:

var dbcon = require('../db');
.
.
router.post('/signup', function (req, res) {
console.log(req.body);
/* knex('users').insert( {
user_id: 1,
password: req.body.su_password,
u_firstname: req.body.su_firstname,
u_lastname: req.body.su_lastname,
u_gender: req.body.su_gender,
u_dob: req.body.su_date,
}).then(function(arg){
console.log(arg);
});
*/
dbcon.connect(function (err) {
var sqlv = {
user_id: 1,
password: req.body.su_password,
u_firstname: req.body.su_firstname,
u_lastname: req.body.su_lastname,
u_gender: req.body.su_gender,
u_dob: req.body.su_date
};

/*var sql = "insert into `users` values (?,??,??,??,??,??,??);";
var sqlv = [1,req.body.su_email, req.body.su_password, req.body.su_firstname, req.body.su_lastname, req.body.su_gender, req.body.su_date];
sql = mysql.format(sql,sqlv);
*/
//var sql ="insert into usertmp (`username`,`password`) values ('"+req.body.su_email+"','"+req.body.su_password+"');";
dbcon.query("insert into users values ? ;", sqlv, function (err, result) {
if (err) {
console.log(err);
throw err;
}
console.log("inserted into users " + result);
});
});
res.redirect('/');
});

routes/index.js 中的 console.log(req.body):

{ su_firstname: 'user',
su_lastname: 'virus',
su_email: 'user@mail.com',
su_gender: 'm',
su_date: '1999-01-01',
su_password: 'passowrd00' }

错误(对于当前示例):

{ 错误:ER_PARSE_ERROR:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'user_id = 1, password = 'passowrd00', u_firstname = ' 附近使用的正确语法user', u_lastname =' 在第 1 行

错误(使用实际 SQL 查询插入每个值并用单引号括起来):

未处理的拒绝错误:ER_BAD_FIELD_ERROR:未知列“用户名”在“字段列表”中

最佳答案

我明白了!这不是nodejs/expressjs 错误,而是来自数据库。在数据库中,我使用了触发器,但忘记使用 NEW/OLD 前缀。

关于mysql - 如何在node js mysql中解析电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51411325/

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