Лесни, но ефективни трикове за приложение, готово за производство

1. Коригиране на наклонената черта в края

Завършващата наклонена черта е наклонена черта, която се появява в края на URL адреса. Изглежда така: localhost:8080/about/ — наклонената черта в края е така наречената завършваща наклонена черта. Това всъщност служи за маркиране на повече съдържание, което да бъде намерено под този път, така че това е директория.

Проблемът е, че Express.js отговаря на път със и без наклонена черта в края с един и същ отговор — същата страница, така че може да бъде извикан със и без наклонена черта в края.
Така Express доставя същата страница, когато отворим localhost:8080/about и localhost:8080/about/ в следния основен пример на код:

app.get(‘/about’, (req, res) => {
  res.send(‘about page’)
})

Какъв е проблемът с тези крайни наклонени черти? Те могат да доведат до лошо SEO класиране. Търсачките правят разлика между двата URL адреса и по този начин забелязват, че на уебсайта се появява дублирано съдържание.

Имах този проблем на моя уебсайт и както можете да видите, той беше класифициран като проблем от SEO инструмент, който използвам.

Не съм експерт по SEO и никой не знае как точно работят алгоритмите на търсачките – но в SEO инструменти като Ubersuggest наклонените черти в края се споменават като сериозен проблем за SEO.

Ето как да го поправите.

За целта можем да използваме прост междинен софтуер, който проверява всяка входяща заявка. Ако дадена заявка съдържа наклонена черта в края, тя ще бъде премахната.

Този междинен софтуер трябва да работи без проблеми — дори URL и параметрите на заявката трябва да работят, тъй като междинният софтуер премахва само ненужната крайна наклонена черта.

2. Изключете power-by-header

Чудили ли сте се как инструменти като Wappalyzer знаят, че вашият уеб сървър е базиран на Express.js?

Това се дължи на HTTP хедър по подразбиране, изпратен от Express.js — хедърът се нарича X-Powered-By. Можете лесно да го намерите в раздела мрежа на вашия браузър:

Но защо трябва да деактивираме тази заглавка?

Първо, това прави цялостната реакция на вашето приложение по-голяма - дори и само минимално.

Второ, позволява на всеки да види, че вашето приложение е базирано на Express.js. Няма от какво да се срамуваме, но винаги трябва да допускаме най-лошото.
В този случай потенциалните нападатели събират информация за вашата система, за да намерят уязвимости.

За щастие дезактивирането става без усилие. Имаме нужда само от следния ред, който трябва да вмъкнем точно под създаването на екземпляра:

const app = express()
app.disable('x-powered-by');

3. Компресия

Използването на компресия може да бъде толкова лесно. Особено за по-големи страници, които доставяте с Express.js, си заслужава. Благодарение на модула за компресия на NPM можем да компресираме съдържанието си масово само с един ред.
Това важи за статично съдържание, но също и за res.send-responses.

Можете да инсталирате междинния софтуер с npm install compression.

Трябва да бъде включен в горната част, т.е. преди express.static — в противен случай ще работи само в ограничена степен.
Ето пример за правилна интеграция:

const compression = require("compression")
....
app.use(compression())
app.use('/static', express.static('public'))

Този един ред прави много. Например създадох статична страница, която обикновено е с размер 18,7 kb — компресирана; той е само 1,3 kb. Гигантска разлика, дори ако винаги зависи от документа. По подразбиране междинният софтуер използва gzip компресия.

„Присъединете се към моя бюлетин, за да сте в крак с новостите“