0
var http = require('http');
var fs = require('fs');
var path="";
process.stdin.on('data', function(chunk) {
var buffer = new Buffer(chunk);
path = buffer.toString();
path = path.replace("\n","");
path = path.replace("\r","");
});
var str="";
var fileRead;
var arrayFiles = [];
function onRequest(request, response) {
str = "";
if (request.url === '/favicon.ico') {
response.writeHead(200, {'Content-Type': 'image/x-icon'});
response.end();
return;
} else if (request.url === '/index.html') {
console.log("Request received" + path);
fs.readdir(path, function(err, items) {
console.log(items);
arrayFiles = [];
str += items;
arrayFiles.push(items);
console.log("Enter file to be read");
process.stdin.on('data', function(chunk) {
var buffer = new Buffer(chunk);
fileRead = buffer.toString();
fileRead = fileRead.replace("\n","");
fileRead = fileRead.replace("\r","");
if(arrayFiles[0].indexOf(fileRead) != -1) {
fs.readFile(fileRead, 'utf8', function(err, contents) {
response.writeHead(200, {"Context-Type": "text/plain"});
response.write(contents);
response.end();
});
}
});
});
}
}
http.createServer(onRequest).listen(8000);
与えられたプログラムは入力として与えられたディレクトリにファイルを表示します。そして、内容を表示するファイル名を入力する。http GETリクエスト(特急なし)
与えられたプログラムでは、stdinから値を読み込むのではなく、GET要求を使ってユーザーからの入力としてファイルの名前が必要です。 Expressモジュールなしでこれを行うことは可能ですか?はいの場合は、助けてください。事前
「ファイル名」のようになります。ここでは一例ですか?実行中のnode.jsコードファイル?またはユーザーがアップロードしたファイルですか? – shaochuancs
内容が表示されるファイル@shaochuancs –
'GET /index.html?filename = test.txt'のようなURLパラメータとしてファイル名を入れることができると思います – shaochuancs