mysql - 快速 Rest API 中的验证
问题描述
我正在使用 Rest api 中的 expressjs 将注册值保存到数据库中,但是我如何评估我的字段(名称、电子邮件、密码)所以如果我在没有数据的情况下保存,那么与字段相关的错误消息应该显示这是我的代码
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");
});
});
解决方案
首先注意:您的代码容易受到 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+"')";
推荐阅读
- rest - Artifactory REST API:如何有效地为用户获取权限目标
- java - 下面的代码每两秒打印一次静态系统时间,但我想每两秒打印一次动态系统时间
- android - React Native VLCPlayer RTSP 延迟(安卓版)
- python - 跨多个线程使用 Pika 通道
- python - 打印一个字符串,同时记录符号 % 之后的所有组件
- css - 如何在同一个容器中将标题居中对齐,文本左对齐?
- python - 加权页面排名图表示
- c# - SignedCms.decode() 在 c# 中做了什么
- sql - 过程的实际语法
- d3.js - 具有可变 X 和 Y 的 D3 条形图(条形的可变宽度和高度)