Express.js ialah salah satu rangka kerja paling popular untuk membina aplikasi Node.js. Sifatnya yang ringan menjadikannya pantas, tetapi apabila apl anda berkembang, kesesakan prestasi boleh menjalar masuk. Dalam blog ini, saya akan berkongsi lima petua praktikal untuk mengoptimumkan apl Express.js anda untuk kelajuan dan kebolehskalaan.
Perisian tengah ialah tulang belakang mana-mana apl Express.js, tetapi perisian tengah yang tidak perlu atau dilaksanakan dengan buruk boleh memperlahankan keadaan.
Hanya muatkan perisian tengah yang diperlukan: Elakkan perisian tengah global untuk laluan yang tidak memerlukannya.
Contoh: Gunakan penghurai badan hanya pada laluan yang menjangkakan muatan JSON.
const express = require('express'); const app = express(); const bodyParser = require('body-parser'); // Use body-parser only for specific routes app.post('/api/data', bodyParser.json(), (req, res) => { res.send('Data received'); });
Caching mengurangkan keperluan untuk pertanyaan pangkalan data berulang atau panggilan API. Alat seperti pengepala cache redis atau HTTP boleh meningkatkan masa tindak balas secara mendadak.
Contoh dengan Redis:
const redis = require('redis'); const client = redis.createClient(); const app = require('express')(); app.get('/api/resource', (req, res) => { const cacheKey = 'resource'; client.get(cacheKey, (err, cachedData) => { if (cachedData) { res.send(JSON.parse(cachedData)); } else { const data = fetchDataFromDatabase(); // Simulated DB call client.setex(cacheKey, 3600, JSON.stringify(data)); // Cache for 1 hour res.send(data); } }); });
Caching HTTP:
app.use((req, res, next) => { res.set('Cache-Control', 'public, max-age=3600'); // Cache for 1 hour next(); });
Muatan muatan yang besar boleh melambatkan masa tindak balas. Mendayakan pemampatan Gzip boleh mengurangkan saiz muatan dan meningkatkan kelajuan.
const compression = require('compression'); const express = require('express'); const app = express(); app.use(compression()); // Compress all routes
Tambahan ringkas ini boleh mengurangkan saiz tindak balas sehingga 70%!
Pertanyaan pangkalan data yang perlahan selalunya menjadi punca utama di sebalik prestasi apl yang lemah.
Petua:
const User = require('./models/User'); // Instead of fetching all users app.get('/users', async (req, res) => { const users = await User.find().limit(20).skip(0); // Use pagination res.send(users); });
HTTP/2 membenarkan pemultipleksan dan pemampatan pengepala, mengurangkan kependaman untuk aset statik. Memadankan ini dengan CDN mempercepatkan lagi penghantaran dengan menyimpan cache aset statik lebih dekat dengan pengguna.
Persediaan untuk HTTP/2 dengan Express:
const http2 = require('http2'); const fs = require('fs'); const express = require('express'); const app = express(); const options = { key: fs.readFileSync('./ssl/key.pem'), cert: fs.readFileSync('./ssl/cert.pem'), }; http2.createSecureServer(options, app).listen(8443, () => { console.log('HTTP/2 server running on port 8443'); });
Dengan mengurus perisian tengah, caching, memampatkan respons dan mengoptimumkan pertanyaan pangkalan data dengan cekap, anda boleh meningkatkan prestasi dengan ketara. Laksanakan petua ini dan pastikan apl anda berjalan dengan pantas!
Jika anda mendapati blog ini membantu, tekan ikon ❤️ dan ikuti saya untuk mendapatkan lebih banyak petua dan helah JavaScript!
Atas ialah kandungan terperinci Ips teratas untuk Menambahkan Apl Express.js Anda untuk Prestasi Sepantas Kilat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!