اعتبارسنجی رشته ها در Node.js

ترجمه و تالیف : امیررضا سیستانه ای
تاریخ انتشار : 13 خرداد 98
خواندن در 1 دقیقه
دسته بندی ها : نود جی اس

اعتبارسنجی اطلاعات ورودی یک بخش مهم و ضروری برای هر نرم افزاریست. شما باید از طبیعت اطلاعات بخصوص اونهایی که از منابع خارجی می آیند, با خبر باشید.

ما برای اطلاعات ساده ای مثل ایمیل, نام و تاریخ تولد و ... اعتبارسنجی انجام میدیم اما مواردی وجود دارند که هنگام توسعه باید به اعتبارسنجی اون ها توجه کرد (مثل json یا Base64 یا غیره)

اعتبارسنج Node

این ماژول Node در این زمینه بسیار کارآمد هست و اکثر اعتبارسنجی رشته ها رو پوشش میده. در ادامه چند نمونه از این ها رو مشاهده می کنید :

  • isEmail => true/false
  • isURL => true/false
  • isIP => true/false
  • isBase64 => true/false
  • isFloat => true/false
  • isDivisibleBy => true/false
  • isNull => true/false
  • isUUID => true/false
  • isJSON => true/false
  • toDate => تبدیل فرمت به تاریخ
  • escape => بیشتر در کوئری های استفاده می شود
  • toFloat => float تبدیل فرمت به 

از طریق این لینک میتونید درموردش بیشتر بخونید.

اپلیکیشن نمونه

ما میخواهیم یک اپلیکیشن ساده node بسازیم که شامل عناصر فرم مثل ایمیل, نام باشه و برای backe-end اطلاعات ورودی رو اعتبارسنجی می کنیم.

package.json
{

  "name": "validator-for-node",

  "version": "0.0.1",

  "dependencies": {

    "body-parser": "^1.12.0",

    "express": "^4.12.0",

    "validator": "^3.32.0"

  }

}

نصب وابستگی ها بوسیله ی دستور زیر در ترمینال :

npm install

فایل form.html :

<html>

  <head>

    <title>Node validator</title>

  </head>

  <body>

    <form id="main_form" action="validateform" method="post">

      <label>Name :</label><input type="text" name="user_name">

      <label>Email : </label><input type="TEXT" name="email"><br>

      <input type = "submit" value ="Submit">

    </form>

  </body>

</html>

داخل این کد اکشن ثبت فرم به 'validateform' ارسال میشه و ما باید این رو در backend که بصورت Node.js هست مدیریت کنیم. این کد سرور ماست :


Server.js

var express       =     require("express");

var validation    =     require("validator");

var bodyParser    =     require("body-parser");


var app = express();

app.use(bodyParser.urlencoded({ extended: false }));



app.get('/',function(req,res){

    res.sendFile(__dirname + '/form.html');

});



/* Form will redirect here with Input data */

app.post('/validateform',function(req,res){

    if(!validation.isEmail(req.body.email)) {

                //True or false return by this function.

        res.send("Email is Bad");

    } else if(!validation.isAlpha(req.body.user_name)) {

        res.send("Name is Bad");

    } else {

        res.send("Form submitted");

    }

});

app.listen(4000,function(){

    console.log("Listening at PORT 3000");

});

اجرای اپلیکیشن

با استفاده از این دستور اپلیکیشن رو اجرا کنید :

node Server.js

حالا به آدرس localhost:3000 رفته و اپلیکیشن رو ببینید.

چند ورودی اشتباه مثلا ایمیل بدون @ یا نام با عدد وارد کنید و خروجی رو مشاهده کنید.

افزودن این به Client Side

فایل کوچک شده رو از اینجا دانلود کنید و اون رو به client side اضافه کنید. بصورت زیر :

<script type="text/javascript" class='lozad' data-src='validator.min.js'></script>

<script type="text/javascript">

  validator.isEmail('shahid@codeforgeek.com'); //=> true

  validator.isEmail('shahid - codeforgeek.com'); //=> false

</script>

نتیجه گیری

مهم ترین بخش این کار جلوگیری از اتلاف وقت شما حین اعتبارسنجی داده هاست. امیدوارم این کتابخانه بتونه به شما کمک کنه و باعث کاهش زمان توسعه اپلیکیشن تون بشه.

منبع

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید