NodeJS は初めてです。
私はそれを学ぶためにこの本を読んでいます。
リクエスト ハンドラ モジュールの 1 つで次のコードを使用しています。基本的には、ブラウザからリクエストが来たらこの関数を呼び出して、画面に表示されたウィンドウの「DIR」コマンドの内容を取得します。
index.js ファイルは、webapp として実行するファイルです。
これはindex.jsです
var server = require("./server.js");
var router = require("./router.js");
var requestHandlers = require("./requestHandlers");
var handle = {};
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);
これはserver.js ですサーバーファイルはリクエストをルーターに送信します
var http = require("http");
var url = require("url");
function start(route, handle)
{
function onRequest(request, response)
{
//console.log("Request recieved!");
var pathname = url.parse(request.url).pathname;
console.log("Request for " + pathname + " has been recieved");
response.writeHead(200, {"Content-Type": "text/plain"});
route(handle, pathname, response);
response.end();
}
http.createServer(onRequest).listen(8888);
console.log("Server started!");
}
exports.start = start;
これはrouter.js ですこれは、 index.jsで作成されたハンドル を使用するルーターです(リクエストをそれぞれのハンドラーにマップするために使用されます)。
function route(handle, pathname, response)
{
console.log("About to route the request " + pathname);
if(typeof handle[pathname] == 'function')
{
handle[pathname](response);
}
else
{
console.log("No request handler found for " + pathname);
response.writeHead(404,{"Content Type": "text/plain"});
response.write("404 not found");
response.end();
}
}
exports.route = route;
そして最後に、 requestHandlers.jsでリクエストが処理される場所です。 ここでは、console.log ステートメントは正常に機能しているように見えますが、response.write ステートメントは機能していません。
var exec = require("child_process").exec;
function start(response)
{
console.log("Request handler 'start' was called.");
exec("dir", function(error, stdout, stderr) {
response.writeHead(200,{"Content Type": "text/plain"});
response.write("Hello Upload!");
response.write(stdout);
response.write("Hello!");
console.log(stdout);
response.end();
});
}
function upload(response)
{
console.log("Request handler 'upload' was called.");
response.writeHead(200,{"Content Type": "text/plain"});
response.write("Hello Upload!");
response.end();
}
exports.start = start;
exports.upload = upload;
どんな助けでも大歓迎です