Dalam pembangunan Node.js, pengesahan dan pengesahan data adalah sangat penting. Ia boleh membantu kami memastikan integriti dan ketepatan data serta mengurangkan masalah yang disebabkan oleh ralat data. Artikel ini akan memperkenalkan beberapa kaedah pengesahan dan pengesahan data yang biasa digunakan serta memberikan contoh kod khusus.
Ungkapan biasa ialah alat pemadanan rentetan yang berkuasa yang boleh digunakan untuk mengesahkan data yang dimasukkan pengguna. Dalam Node.js, kita boleh menggunakan objek RegExp untuk mencipta ungkapan biasa dan memadankan data.
Sebagai contoh, kami boleh menggunakan ungkapan biasa untuk mengesahkan sama ada alamat e-mel adalah sah:
const email = 'test@example.com'; const emailRegex = /^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$/; if (emailRegex.test(email)) { console.log('Valid email'); } else { console.log('Invalid email'); }
Dalam kod ini, kami menggunakan ungkapan biasa untuk mengesahkan alamat e-mel. Dalam ungkapan biasa, ^ mewakili permulaan dan $ mewakili penghujung. Format alamat e-mel boleh dibahagikan kepada tiga bahagian: nama pengguna, simbol @ dan nama domain. Kami menggunakan kurungan untuk mengumpulkan tiga bahagian ini dan menggunakan beberapa aksara khas untuk memadankannya. Jika alamat e-mel ini sepadan dengan ungkapan biasa yang kami tetapkan, kaedah ujian akan mengembalikan benar, jika tidak ia akan mengembalikan palsu.
Joi ialah perpustakaan pengesahan dan pengesahan data Node.js yang popular yang menyediakan fungsi yang kaya dan API yang mudah digunakan. Joi boleh mengesahkan sebarang jenis objek, termasuk rentetan, nombor, boolean, tatasusunan, objek, dsb.
Pertama, kita perlu memasang perpustakaan Joi:
npm install joi
Kemudian, kita boleh menggunakan Joi untuk pengesahan data. Sebagai contoh, kami boleh mengesahkan sama ada objek pengguna mengandungi atribut yang diperlukan:
const Joi = require('joi'); const userSchema = Joi.object({ name: Joi.string().required(), email: Joi.string().email().required(), age: Joi.number().min(18).max(100), }); const user = { name: 'Tom', email: 'test@example.com', age: 20, }; const { error, value } = userSchema.validate(user); if (error) { console.log(error.details); // Output: [ { message: '"name" is required', path: [ 'name' ], type: 'any.required' } ] } else { console.log(value); }
Dalam kod ini, kami mentakrifkan skema objek pengguna, yang mengandungi tiga atribut: nama, e-mel dan umur. Gunakan kaedah pengesahan untuk mengesahkan dan menentukan keputusan pengesahan. Dalam contoh ini, jika objek pengguna tiada nama atau atribut e-mel, mesej ralat akan dicetak.
Express-validator ialah perpustakaan pengesahan dan pengesahan data yang popular untuk rangka kerja Express. Ia menyokong pelbagai kaedah pengesahan dan pengesahan, serta menyediakan beberapa kaedah pembantu yang berguna.
Mula-mula, kita perlu memasang perpustakaan Express-validator:
npm install express-validator
Kemudian, kita boleh menggunakan Express-validator untuk pengesahan data. Sebagai contoh, kami boleh mengesahkan bahawa badan permintaan mengandungi atribut yang diperlukan:
const { body, validationResult } = require('express-validator'); app.post('/user', [ body('name').notEmpty().withMessage('Name is required'), body('email') .isEmail().withMessage('Email is invalid') .normalizeEmail(), body('age') .isInt({ min: 18, max: 100 }).withMessage('Age must be between 18 and 100'), ], (req, res) => { const errors = validationResult(req); if (!errors.isEmpty()) { res.status(400).json({ errors: errors.array() }); } else { const { name, email, age } = req.body; // Do something with user data res.send('User created'); } });
Dalam kod ini, kami mentakrifkan pengendali permintaan POST dan menggunakan fungsi badan untuk mengesahkan nama, e-mel dan atribut umur dalam badan permintaan. Jika badan permintaan mengandungi data tidak sah, fungsi validationResult akan mengembalikan tatasusunan yang mengandungi maklumat ralat.
Ringkasan
Pengesahan dan pengesahan data ialah bahagian penting dalam pembangunan Node.js. Artikel ini memperkenalkan beberapa kaedah pengesahan dan pengesahan yang biasa digunakan, termasuk ungkapan biasa, Joi dan Express-validator. Dengan menggunakan kaedah ini, kami boleh memastikan integriti dan ketepatan data dan mengelakkan masalah yang disebabkan oleh ralat data.
Atas ialah kandungan terperinci Pembangunan Node.js: Cara melaksanakan fungsi pengesahan dan pengesahan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!