This document might be outdated relative to the documentation in English. For the latest updates, please refer to the documentation in English.
Bu savolga bitta javob yo’q. Bu dasturingiz hajmi va dasturchilar jamosiga bog’liq bo’ladi. Tobora moslashuvchan bo’lish uchun, Express struktura yaratishga hech qanday cheklovlar qo’ymaydi.
Dasturning marshrutizatsiya va boshqa logika qismi ko’plab fayllarda joylashgan bo’lishi mumkin, struktura esa siz hohlagan holda yaratish imkoniyati mavjud. Ilhomlanish uchun quyidagi strukturalarni ko’rishingiz mumkin:
Bundan tashqari, Express uchun qo’shimcha yordam beruvchi shablonlar mavjud:
Express qaysi ma’lumotlar ombori bilan ishlashni keltirilmagan. Siz hohlagan Node modullarni ishlatishingiz mumkin bo’ladi, bu esa sizga hohlagan ma’lumotlar omborini ishlatish imkonini beradi.
LoopBack ko’ring, Express asosida modellar bilan ishlash uchun yaratilgan freymvork.
Bu ham Express o’ziga olmaydigan qismi hisoblanadi. Siz hohlagan autenfikatsiya tizimini ishlatishingiz mumkin bo’ladi. Oddiy username / password sxemasini ishlatish uchun ushbu misolni ko’ring.
Express (path, locals, callback)
signaturasini maqullaydigan barcha shablonizatorni ishlatishi mumkin.
Iterfey shablonizator va keshirovaniyani normalashtirish uchun, consolidate.js ni ko’ring.
Siz oraliq qayta ishlovchilarni bir necha marta ishatishingiz mumkin. Quyidagilar keltirilgan oraliq qayta ishlovchida, GET /javascripts/jquery.js
ni olishga so’rov jo’natilganda, avvalo ./public/javascripts/jquery.js
ni tekshiradi;
Agarda ushbu fayl direktoriyada topilmasa, undan keyingi oraliq qayta ishlovchida ko’rsatilgan direktoriyani ./files/javascripts/jquery.js
tekshiradi.
app.use(express.static('public'));
app.use(express.static('files'));
Asosiy Connect “mounting” yordamida “prefiks” aniqlab qaysi middleware ishga tushishini ko’rsatish mumkin bo’ladi.
Bu usul effektiv ishlaydi huddi prefiks hech qachon manzil qismi bo’lmagandek.
Masalan, bizga GET /files/javascripts/jquery.js
kerak bo’lsa.
Siz /files
prefiksini o’rnatib, /javascripts/jquery.js
ni req.url
aniqlashingiz mumkin, shu bilan tarqatish uchun middleware ko’rsatishingiz mumkin:
app.use('/public', express.static('public'));
Expressda, 404 xatosi, natija xatosi hisoblanmaydi. Shuning uchun ham xatolarni qayta ishlovchi middleware 404ni qayta ishlay olmaydi. Chunki 404 qo’shimcha ish yo’qligidan dalolat beradi; Boshqa qilib aytganda, Express hamma oraliq qayta ishlovchi(middleware) / routerlarni(routes)larni ishga tushuradi, va ularda hech biri ish haqida natija beramangani aniqlanadi. Buning uchun siz eng oxirida(hammasidan keyin) 404ni qayta ishlash oraliq qayta ishlovchi ko’rsatishingiz kerak bo’ladi:
app.use(function(req, res, next){
res.send(404, 'Sorry cant find that!');
});
Siz xatolarni qayta ishlovchi middlewareni ko’rsatishingiz mumkin, shu bilan qolgan qayta ishlovchisi(middleware)ga
uchta argumentlar o’rniga to’rtta argument jo’natishingiz kerak; u quyidagicha (err, req, res, next)
:
app.use(function(err, req, res, next){
console.error(err.stack);
res.send(500, 'Something broke!');
});
Batafsil ma’lumot uchun Xatolarni qayta ishlash o’qing.
Siz buni qilishingiz kerak emas! HTMLni res.render()
orqali “render” qilish kerak emas.
Agar sizda shunday fayl bo’lsa, res.sendFile()
ishlating.
Agar siz ko’pgina bunday fayllarni ishlatsangiz express.static()
qayta ishlovchisi(middleware)ni ishlatishingiz mumkin.