Привет всем, я новичок в mysql и хотел бы проверить, существует ли тот же жанр в базе данных, и если это так, он возвращает код состояния, и если жанр не существует, жанр добавляется в базу данных. В настоящее время у меня есть следующие проблемы: он может проверить, существует ли жанр, и вернуть код состояния, но при входе в другой жанр он реагирует так же, как если бы жанр существовал:
файл 1
Insertgenre:function(genre,description,callback){
var dbConn=db.getConnection();
// connects to the mysql database (contains an asyn function that returns a callback)
dbConn.connect(function(err){
if(err){
console.log(err);
return callback(err,result);
}else{
// Query for get all rows from genre table where genre = entered genre
var checkSql = 'SELECT genre FROM genre WHERE genre = ?';
dbConn.query(checkSql, [genre], function(err1, result) {
if(err) {
return callback(err,result);
}else {
// Checking if the result length is more than 0.
if(result.length > 0) {
return callback(err1,result);
}else {
var sql="insert into genre(genre,description) values(? ?)";
dbConn.query(sql,[genre,description],function(err,result){
dbConn.end();
if(err) {
console.log(err);
}
return callback(err,result);
}
}
}
});
файл 2
app.post('/genre', function(req,res){
var genre = req.body.genre;
var description = req.body.description;
genreDB.Insertgenre(genre,description,function(err,err1,result){
if(err){
//console.log(err)
res.type('json');
res.statusCode=500;
res.send(`{"Result":"Internal Error"}`);
}if(err1){
console.log(err1)
res.type('json');
res.statusCode=422;
res.send(`{"Result":"The genre name provided already exists"}`);
}
else{
res.type("json");
res.statusCode=204;
//res.send(result);
console.log(result);
res.send(`{"Affected Rows":"${result.affectedRows}"}`);
}
});
});
Почему в заголовке написано "пользователь", а в вопросе "жанр"?
@Barmar, извини, мой плохой, я отредактирую заголовок
Ваша функция обратного вызова ожидает 3 аргумента, но вы вызываете ее только с 2 аргументами.
Сравните
function(err,err1,result)
сcallback(err,result);
. Предполагается, что должно быть два аргументаerr
, аresult
должен быть третьим аргументом.Извините, могу я узнать, в какую строку я должен добавить аргументы?