2017-01-31 16 views
8

Szukałem przykładów kodowania po stronie serwera i próbowałem arbitralnie Node i Express. Po ich wypróbowaniu example.js każdego z nich pokazanego poniżej, natknąłem się na różnicowanie czcionek między nimi. Ok wiem express.js to ramy Node.js, ale nie mogłem znaleźć nigdzie o przyczynie lub użytej technologii (lub główną przyczynę/fabularnego o typografii)Node.js i Express.js Różnicowanie czcionek

Oto node.js przykładem;

const http = require('http'); 
const hostname = '127.0.0.1'; 
const port = 3000; 
const server = http.createServer((req, res) => { 
    res.statusCode = 200; 
    res.setHeader('Content-Type', 'text/plain'); 
    res.end('Hello World\n'); 
}); 
server.listen(port, hostname,() => { 
    console.log(`Server running at http://${hostname}:${port}/`); 
}); 

i tutaj jest wersja Express.js obsługuje tę samą pracę;

var express = require('express') 
var app = express() 
app.get('/', function (req, res) { 
    res.send('Hello World!') 
}) 
app.listen(3000, function() { 
    console.log('Example app listening on port 3000!') 
}) 

Wkrótce zastanawiam się, dlaczego to właśnie powoduje różne wyniki. Poza tym, czy każdy język po stronie serwera daje różne wyniki w przeglądarce? 0.o

Kliknij aby zobaczyć poniżej wyjścia,

Express.js output Vs Node.js output

+2

Jeśli ustawisz 'res.setHeader ('Content-Type', 'text/html');' w czystej wersji node.js, otrzymasz te same dane wyjściowe. Różnica między czcionkami polega na tym, że przeglądarka renderuje różne typy treści, domyślnie wysyła tekst "text/html". – Lyth

+0

Cóż, dziękuję bardzo za te informacje, których nie zdawałem sobie sprawy. –

Odpowiedz

6

i tutaj jest wersja Express.js obsługuje tę samą pracę

No, no, nie do końca. Twój przykład "zwykłego węzła" jawnie ustawia typ zawartości na "text/plain", ale nie robisz tego samego dla przykładu Express, w którym to przypadku domyślnie będzie to "text/html".

Jeśli serwer poinformuje przeglądarkę, że odpowiedź zawiera kod HTML, przeglądarka zastosuje domyślny arkusz stylów CSS, który zwykle zawiera czcionkę ciała (podobnie jak Times New Roman).

Gdy używasz "text/plain", większość przeglądarek renderuje zawartość w czcionce o stałej szerokości.

Powiązane problemy