Lompat ke konten Lompat ke sidebar Lompat ke footer

Pembuatan Profile NODEJS #1

       Pembuatan profil yang mudah untuk Aplikasi Node.js Ada banyak alat pihak ketiga yang tersedia untuk membuat profil aplikasi Node.js tetapi, dalam banyak kasus, opsi termudah adalah dengan menggunakan profiler bawaan Node.js. Profiler bawaan menggunakan profiler di dalam V8 yang mengambil sampel tumpukan secara berkala selama eksekusi program. Ini mencatat hasil dari sampel ini, bersama dengan peristiwa pengoptimalan penting seperti kompilasi jit, sebagai serangkaian tanda centang:
code-creation,LazyCompile,0,0x2d5000a337a0,396,"bp native array.js:1153:16",0x289f644df68,~
code-creation,LazyCompile,0,0x2d5000a33940,716,"hasOwnProperty native v8natives.js:198:30",0x289f64438d0,~
code-creation,LazyCompile,0,0x2d5000a33c20,284,"ToName native runtime.js:549:16",0x289f643bb28,~
code-creation,Stub,2,0x2d5000a33e00,507,"NumberToStringStub"
code-creation,Stub,2,0x2d5000a33d40,182,"DoubleToIStub"
Di masa lalu, Anda memerlukan kode sumber V8 untuk dapat menafsirkan kutu. Untungnya, alat telah diperkenalkan sejak Node.js 4.4.0 yang memfasilitasi konsumsi informasi ini tanpa membuat V8 dari sumber secara terpisah. Mari kita lihat bagaimana profiler bawaan dapat membantu memberikan wawasan tentang kinerja aplikasi. Untuk mengilustrasikan penggunaan profiler centang, kami akan bekerja dengan aplikasi Express sederhana. Aplikasi kita akan memiliki dua penangan, satu untuk menambahkan pengguna baru ke sistem kita:
app.get('/newUser', (req, res) => {
let username = req.query.username || '';
const password = req.query.password || '';
username = username.replace(/[!@#$%^&*]/g, '');
if (!username || !password || users[username]) {
return res.sendStatus(400);
}
const salt = crypto.randomBytes(128).toString('base64');
const hash = crypto.pbkdf2Sync(password, salt, 10000, 512, 'sha512');
users[username] = { salt, hash };
res.sendStatus(200);
});
dan satu lagi untuk memvalidasi upaya otentikasi pengguna:
app.get('/auth', (req, res) => {
let username = req.query.username || '';
const password = req.query.password || '';
username = username.replace(/[!@#$%^&*]/g, '');
if (!username || !password || !users[username]) {
return res.sendStatus(400);
}
const { salt, hash } = users[username];
const encryptHash = crypto.pbkdf2Sync(password, salt, 10000, 512, 'sha512');
if (crypto.timingSafeEqual(hash, encryptHash)) {
res.sendStatus(200);
} else {
res.sendStatus(401);
}
});
Harap dicatat bahwa ini BUKAN penangan yang disarankan untuk mengautentikasi pengguna di aplikasi Node.js Anda dan hanya digunakan untuk tujuan ilustrasi. Anda tidak boleh mencoba merancang mekanisme otentikasi kriptografi Anda sendiri secara umum. Jauh lebih baik menggunakan solusi otentikasi yang sudah ada dan sudah terbukti.

Posting Komentar untuk "Pembuatan Profile NODEJS #1"