Проверка в экспрессе Rest Apis

0

Я сохраняю значение регистрации в базе данных с помощью expressjs в Rest api, но как я могу оценить мои поля (имя, адрес электронной почты, пароль), поэтому, если я сохраню данные без ошибок, тогда сообщение об ошибке, связанном с полем, должно показать. Вот мой код

var mysql = require('mysql');
    var con = mysql.createConnection({
     host: "localhost",
      user: "root",
      password: "",
      database: "mydb"
    });

    var toTime = new Date();

      con.connect(function(err) {
      if (err) throw err;
      console.log("Connected!");
      var sql = "INSERT INTO users (name, email,password) VALUES ('"+req.body.name+"','"+req.body.email+"','"+req.body.password+"')";
      con.query(sql, function (err, result) {
        if (err) throw err;
        console.log("1 record inserted");
         });
    });
  • 0
    В качестве примечания: вы чрезвычайно открыты для внедрения SQL с использованием таких непараметрических запросов.
  • 0
    @JayGould: не понимаю вашу точку зрения, пожалуйста, объясните
Показать ещё 3 комментария
Теги:
express

1 ответ

0

Первое примечание: вы код подвержен SQL-инъекции. См. Этот вопрос SO

Теперь вы можете просто сделать функцию проверки, которая возвращает boolean и использовать его перед запросом, например

function validateFunc(...params){
    return params.reduce((p,c)=> p && (c !== null && c !== undefined), true);
}

И используйте его, как,

if(!validateFunc(req.body.name, req.body.email, req.body.password)){
    // throw some error 
}
var sql = "INSERT INTO users (name, email,password) VALUES ('"+req.body.name+"','"+req.body.email+"','"+req.body.password+"')";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню