2017-01-31 9 views
8

私はサーバーサイドコーディングの例を探していましたが、Node and Expressは任意に試みました。私がそれらを試してみたところ、下に示したそれぞれのexample.js、私はそれらの間のフォントの差別化に遭遇しました。 [OK]をここで Node.jsとExpress.jsフォントの区別

私はexpress.jsNode.jsのフレームワークである知っているが、私はその理由や基礎となる技術(タイポグラフィのか、主な原因/機能)についてはどこにも見つけることができませんでしたNode.jsの一例です。

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}/`); 
}); 

、ここでExpress.jsバージョンが同じジョブを処理しています。

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!') 
}) 

まもなく私はまさにこれは異なる出力を与えることを引き起こして何の理由を不思議に思います。さらに、サーバー側の言語同士でブラウザ上で異なる出力が得られますか? 0.o

以下の出力を参照してくださいするにはここをクリック、

Express.js outputNode.js output

+2

純粋なnode.jsバージョンで 'res.setHeader( 'Content-Type'、 'text/html');'を設定すると、同じ出力が得られます。フォントの違いは、ブラウザが異なるコンテンツタイプをどのようにレンダリングしているかにあります。expressは、デフォルトで 'text/html'を送信します。 – Lyth

+0

さて、私が気付かなかったその情報をありがとう、ありがとう。 –

答えて

6

、ここではExpress.jsバージョンであるなし、同じジョブ

まあを処理し、完全ではない。あなたの "プレーンノード"の例では、コンテンツタイプを "text/plain"に明示的に設定していますが、Expressの例では同じではありません。デフォルトでは "text/html"になります。

サーバーがレスポンスにHTMLが含まれていることをサーバーに通知すると、ブラウザにはデフォルトのCSSスタイルシートが適用されます。通常はボディフォント(Times New Romanなど)が含まれます。

"text/plain"を使用すると、ほとんどのブラウザはコンテンツをモノスペースフォントで表示します。

関連する問題