আমি একটি নিখুঁত সার্ভার হিসাবে নোড বুঝতে অনুশীলন হিসাবে নোডজে একটি স্ট্যাটিক ফাইল সার্ভার তৈরি করার চেষ্টা করছি। আমি কানেক্ট এবং নোড-স্ট্যাটিকের মতো প্রকল্পগুলি সম্পর্কে ভালভাবে সচেতন এবং আরও বেশি উত্পাদন-প্রস্তুত কোডের জন্য এই লাইব্রেরিগুলি ব্যবহার করার সম্পূর্ণ ইচ্ছা করি তবে আমি কী নিয়ে কাজ করছি তার মূল বিষয়গুলিও বুঝতে আগ্রহী। এই বিষয়টি মনে রেখে, আমি একটি ছোট সার্ভার.কোড আপ করেছি।
var http = require('http'),
url = require('url'),
path = require('path'),
fs = require('fs');
var mimeTypes = {
"html": "text/html",
"jpeg": "image/jpeg",
"jpg": "image/jpeg",
"png": "image/png",
"js": "text/javascript",
"css": "text/css"};
http.createServer(function(req, res) {
var uri = url.parse(req.url).pathname;
var filename = path.join(process.cwd(), uri);
path.exists(filename, function(exists) {
if(!exists) {
console.log("not exists: " + filename);
res.writeHead(200, {'Content-Type': 'text/plain'});
res.write('404 Not Found\n');
res.end();
}
var mimeType = mimeTypes[path.extname(filename).split(".")[1]];
res.writeHead(200, mimeType);
var fileStream = fs.createReadStream(filename);
fileStream.pipe(res);
}); //end path.exists
}).listen(1337);
আমার প্রশ্ন দ্বিগুণ
নোডে বেসিক এইচটিএমএল ইত্যাদি তৈরি এবং স্ট্রিমিংয়ের বিষয়ে এটিই কি "সঠিক" উপায় বা আরও ভাল / আরও মার্জিত / আরও শক্তিশালী পদ্ধতি আছে?
নোডে। পাইপ () মূলত কেবল নিম্নলিখিতটিই করছে?
।
var fileStream = fs.createReadStream(filename);
fileStream.on('data', function (data) {
res.write(data);
});
fileStream.on('end', function() {
res.end();
});
ধন্যবাদ সবাইকে!