diff --git a/KenYA/.gitignore b/KenYA/.gitignore new file mode 100644 index 0000000..a1ab09c --- /dev/null +++ b/KenYA/.gitignore @@ -0,0 +1 @@ +async.await/node_modules/ diff --git a/KenYA/README.md b/KenYA/README.md new file mode 100644 index 0000000..c0184cd --- /dev/null +++ b/KenYA/README.md @@ -0,0 +1,7 @@ +#KenYA +#Node.js Practice List + +##Practice 01 +Say Hello to Terminal. + +##Practice 02 diff --git a/KenYA/async.await/async_await.js b/KenYA/async.await/async_await.js new file mode 100644 index 0000000..c81cae6 --- /dev/null +++ b/KenYA/async.await/async_await.js @@ -0,0 +1,21 @@ +var async = require('asyncawait/async'); +var await = require('asyncawait/await'); + +//async , 建立一個需要花費三秒的工作 +const sayHi = async( function(){ + return new Promise(function(resolve, reject){ + setTimeout(function(){ + //經由 resolve 回傳字串 + resolve("Hello, How are you today."); + },3000); + }); +}); + +const test = async( function(){ + //await 會等 sayHi 執行完成,才執行console.log + let message = await( sayHi() ); + console.log(message); +}); + +//console.log 為預期的結果 +test(); diff --git a/KenYA/async.await/no_async_await.js b/KenYA/async.await/no_async_await.js new file mode 100644 index 0000000..c9cf7ae --- /dev/null +++ b/KenYA/async.await/no_async_await.js @@ -0,0 +1,15 @@ +const sayHi = function(){ + //假設工作需要花費三秒,完成後會回傳字串 + setTimeout(function(){ + return "Hello, How are you today.."; + },3000); +} + +const test = function(){ + //呼叫 sayHi 回傳值給 message 並且輸出 + let message = sayHi(); + console.log(message); +} + +//但會發現 console.log結果是 "undefined" +test(); diff --git a/KenYA/async.await/package.json b/KenYA/async.await/package.json new file mode 100644 index 0000000..aab9901 --- /dev/null +++ b/KenYA/async.await/package.json @@ -0,0 +1,7 @@ +{ + "name": "async_await", + "version": "1.0.0", + "dependencies": { + "asyncawait": "^1.0.6" + } +} diff --git a/KenYA/p01.js b/KenYA/p01.js new file mode 100644 index 0000000..d3ad41c --- /dev/null +++ b/KenYA/p01.js @@ -0,0 +1,2 @@ +// Terminal stdout hello. +console.log("Hello kitty."); diff --git a/KenYA/p02_http_Server.js b/KenYA/p02_http_Server.js new file mode 100644 index 0000000..314d57c --- /dev/null +++ b/KenYA/p02_http_Server.js @@ -0,0 +1,16 @@ +var http = require('http'); +//var url = require('url'); + +var server = http.createServer(function(request , response){ + if(request.url === "/"){ + response.writeHead(200,{"Content-Type":"text\plain"}); + response.end("Hello, I'm home page"); + } + else{ + response.writeHead(404,{"Content-Type":"text\plain"}); + response.end("404 error, Page not found."); + } +}); + +server.listen(8080,'localhost'); +console.log('Server running at http://localhost:8080'); diff --git a/KenYA/p03_http_server2.js b/KenYA/p03_http_server2.js new file mode 100644 index 0000000..09aa028 --- /dev/null +++ b/KenYA/p03_http_server2.js @@ -0,0 +1,17 @@ +var http = require('http'); + +function onRequest(request, response){ + if(request.url === '/'){ + response.writeHead(200, {"Content-Type":"text/plain"}); + response.end("Welcome to the Hell. ^_^)y"); + } + else{ + response.writeHead(404, {"Content-Type":"text/plain"}); + response.end("Orz\n404 error!"); + } +} + +var server = http.createServer(onRequest); + +server.listen(5566,"localhost"); +console.log("Server running at http://localhost:5566"); diff --git a/KenYA/p04_module/index.js b/KenYA/p04_module/index.js new file mode 100644 index 0000000..caa46f6 --- /dev/null +++ b/KenYA/p04_module/index.js @@ -0,0 +1,3 @@ +var server = require("./server.js"); + +server.start(); diff --git a/KenYA/p04_module/server.js b/KenYA/p04_module/server.js new file mode 100644 index 0000000..fa71cfa --- /dev/null +++ b/KenYA/p04_module/server.js @@ -0,0 +1,14 @@ +var http = require('http'); + +function start(){ + function onRequest(request, response){ + console.log("In comes a method: " + request.method + " to path:" + request.url); + response.writeHead(200,{"Content-Type":"text/plain"}); + response.end("Hello Kitty."); + } + + http.createServer(onRequest).listen(5566); + console.log("Server running at http://localhost:5566") +} + +exports.start = start; diff --git a/KenYA/p05_url/index.js b/KenYA/p05_url/index.js new file mode 100644 index 0000000..caa46f6 --- /dev/null +++ b/KenYA/p05_url/index.js @@ -0,0 +1,3 @@ +var server = require("./server.js"); + +server.start(); diff --git a/KenYA/p05_url/server.js b/KenYA/p05_url/server.js new file mode 100644 index 0000000..a5f6e5c --- /dev/null +++ b/KenYA/p05_url/server.js @@ -0,0 +1,16 @@ +var http = require('http'); +var url = require('url'); + +function start(){ + function onRequest(request, response){ + var pathname = url.parse(request.url).pathname; + console.log("Request for " + pathname + " received."); + response.writeHead(200,{"Content-Type":"text/plain"}); + response.end("Hello Piggy (^OO^)"); + } + + http.createServer(onRequest).listen(5566); + console.log("Server running at http://localhost:5566"); +} + +exports.start = start(); diff --git a/KenYA/p06_route/index.js b/KenYA/p06_route/index.js new file mode 100644 index 0000000..5a74159 --- /dev/null +++ b/KenYA/p06_route/index.js @@ -0,0 +1,4 @@ +var server = require("./server.js"); +var router = require("./route.js"); + +server.start(router.route); diff --git a/KenYA/p06_route/route.js b/KenYA/p06_route/route.js new file mode 100644 index 0000000..9d1744f --- /dev/null +++ b/KenYA/p06_route/route.js @@ -0,0 +1,5 @@ +function route(pathname){ + console.log("About to route a request for " + pathname); +} + +exports.route = route; diff --git a/KenYA/p06_route/server.js b/KenYA/p06_route/server.js new file mode 100644 index 0000000..2c22b03 --- /dev/null +++ b/KenYA/p06_route/server.js @@ -0,0 +1,19 @@ +var http = require('http'); +var url = require('url'); + +function start(route){ + function onRequest(request, response){ + var pathname = url.parse(request.url).pathname; + console.log("Request for " + pathname + " received."); + + route(pathname); + + response.writeHead(200,{"Content-Type":"text/plain"}); + response.end("Hello Piggy (^OO^)"); + } + + http.createServer(onRequest).listen(5566); + console.log("Server running at http://localhost:5566"); +} + +exports.start = start;