今天花了多少時間在編程的學(xué)習(xí)上: 5
今天完成的事情:
- 參考node.js的入門的文章, 搭建起了一個上傳圖片并把圖片展示到網(wǎng)站上面的應(yīng)用。
- 整理了自己的node.js的文章在馬克飛象
明天計(jì)劃的事情:
- node.js其他的應(yīng)用, 去買本書回來看一下
遇到的問題:
- querystring庫的作用究竟是什么
- formidable庫的作用究竟是什么
收獲:
整理出來了一些在創(chuàng)建一個服務(wù)器的過程中可能會用到的代碼
寫入內(nèi)容
console.log("Request handler 'start' was called.");
var body ='<html>'+
'<head>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'<form action="/upload" enctype="multipart/form-data" '+
'method="post">'+
'<input type="file" name="upload" multiple="multiple">'+
'<input type="submit" value="Upload file" />'+
'</form>'+
'</body>'+
'</html>';
response.writeHead(200,{"Content-type":"text/html"});
response.write(body);
response.end();
寫入錯誤
response.writeHead(500,{"Content-Type":"text/plain"});
response.write(error +"\n");
response.end();
找不到
console.log("No request handler found for "+ pathname);
response.writeHead(404,{"Content-Type":"text/html"});
response.write("404 Not found");
response.end();
路由器
function route(handle, pathname, response, request){
console.log("About to route a request for "+ pathname);
if(typeof handle[pathname]==='function'){
handle[pathname](response, request);
}else{
console.log("No request handler found for "+ pathname);
response.writeHead(404,{"Content-Type":"text/html"});
response.write("404 Not found");
response.end();
}
}
exports.route = route;
index的代碼
var server = require("./server");
var requestHandlers = require("./requestHandlers");
var router = require("./route");
var handle = {};
handle["/"] = requestHandlers.start;
handle["/start"] = requestHandlers.start;
handle["/show"] = requestHandlers.show;
handle["/upload"] = requestHandlers.upload;
server.start(router.route, handle);
服務(wù)器
var http = require("http");
var url = require("url");
function start(route,handle) {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
console.log("Request for "+ pathname +" received.");
route(handle, pathname, response, request);
//解析網(wǎng)站傳入的指令
//在控制臺告訴我們接收到了什么樣的指令
//將
}
http.createServer(onRequest).listen(8888);
console.log("Server has started.");
}
exports.start = start;
解決解決了queryString庫是做什么的
從名字就可以看出是一個和參數(shù)相關(guān)的幫助類,完成參數(shù)字符串和字符串或者是對象之間的轉(zhuǎn)換。