2017-01-31 12 views
8

मैं सर्वर साइड कोडिंग के उदाहरणों की खोज कर रहा था और मैंने मनमाने ढंग से नोड और एक्सप्रेस की कोशिश की। नीचे दिए गए प्रत्येक व्यक्ति के example.js को आजमाने के बाद, मैं उनके बीच एक फ़ॉन्ट भेदभाव में भाग गया। ठीक है मैं जानता हूँ कि express.jsNode.js की एक रूपरेखा है, लेकिन मैं कहीं भी कारण या अंतर्निहित प्रौद्योगिकी (या मुख्य कारण टाइपोग्राफी का/सुविधा)Node.js और Express.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 output बनाम Node.js output

+2

यदि आप 'res.setHeader ('सामग्री-प्रकार', 'टेक्स्ट/एचटीएमएल') सेट करते हैं, 'शुद्ध node.js संस्करण में, आपको एक ही आउटपुट मिल जाएगा। फोंट में अंतर यह होता है कि आपका ब्राउज़र अलग-अलग सामग्री-प्रकार कैसे प्रस्तुत करता है, एक्सप्रेस डिफ़ॉल्ट रूप से 'टेक्स्ट/html' भेजता है। – Lyth

+0

ठीक है, उस जानकारी के लिए आपको बहुत बहुत धन्यवाद जो मुझे नहीं पता था। –

उत्तर

6

और यहाँ, Express.js संस्करण, एक ही काम

खैर हैंडल नहीं है पूरी तरह से नहीं। आपका "सादा नोड" उदाहरण स्पष्ट रूप से सामग्री-प्रकार को "टेक्स्ट/सादा" पर सेट करता है, लेकिन आप एक्सप्रेस उदाहरण के लिए ऐसा नहीं करते हैं, इस स्थिति में यह "टेक्स्ट/एचटीएमएल" के लिए डिफ़ॉल्ट होगा।

यदि सर्वर ब्राउज़र को बताता है कि प्रतिक्रिया में HTML है, तो ब्राउज़र एक डिफ़ॉल्ट सीएसएस स्टाइलशीट लागू करेगा, जिसमें आमतौर पर बॉडी फ़ॉन्ट (टाइम्स न्यू रोमन जैसे कुछ) शामिल होते हैं।

जब आप "टेक्स्ट/सादा" का उपयोग करते हैं, तो अधिकांश ब्राउज़र एक मोनोस्पेस्ड फ़ॉन्ट में सामग्री प्रस्तुत करेंगे।

संबंधित मुद्दे