标签:
#node.js教程learnyounode 闯关答案#ex1console.log("HELLO WORLD");#ex2var sum =0;for(var i =2;i<process.argv.length;i+=){sum+=parseFloat(process.argv[i]);}console.log(sum);#ex3var fs = require(‘fs‘);var pathname = process.argv[2];//console.log(pathname);var buf = fs.readFileSync(pathname);var results = buf.toString().split("\n");//console.log(results);console.log(results.length-1);#ex4var fs = require(‘fs‘);var pathname = process.argv[2];fs.readFile(pathname,handle);function handle(err,data){if(err){console.error(err);return;}var results = data.toString().split("\n");console.log(results.length-1);}#ex5var fs = require(‘fs‘);var path = require(‘path‘);var pathname = process.argv[2];var extname = process.argv[3];fs.readdir(pathname,function(err,files){for(var i=0;i<files.length;i++){if("."+extname == path.extname(files[i])){console.log(files[i]);}}});#ex6##program.jsvar mymodule = require("./mymodule");var pathname = process.argv[2];var extname = process.argv[3];mymodule(pathname,extname,callback);function callback(err,data){if(err){console.error(err);return ;}data.forEach(function(file){console.log(file);});}##mymodule.jsvar fs = require(‘fs‘);var path = require(‘path‘);module.exports = function (pathname,extname,callback){var results = new Array();var cnt =0;fs.readdir(pathname,function(err,files){if(err){return callback(err);}for(var i=0;i<files.length;i++){if("."+extname == path.extname(files[i])){results[cnt++] = files[i];}}//console.log(results);callback(null,results);});};#ex7var http = require("http");var url = process.argv[2];http.get(url, function(res) {res.setEncoding("utf-8");res.on("data",function(data){console.log(data);});});#ex8var http = require("http");var url = process.argv[2];http.get(url, function(res) {res.setEncoding("utf-8");var results ="";res.on("data",function(data){results +=data;});res.on("end",function(){console.log(results.length);console.log(results);});});#ex9#solution1:var http = require("http");http.get(process.argv[2],handle1);http.get(process.argv[3],handle2);http.get(process.argv[4],handle3);var results= ["","",""];function handle1(res){res.setEncoding="utf-8";res.on("data",function(data){results[0] +=data;});res.on("end",function(){//console.log(results[0]);});}function handle2(res){res.setEncoding="utf-8";res.on("data",function(data){results[1] +=data;});res.on("end",function(){//console.log(results[1].toString());});}function handle3(res){res.setEncoding="utf-8";res.on("data",function(data){results[2] +=data;});res.on("end",function(){console.log(results[0].toString());console.log(results[1].toString());console.log(results[2].toString());});}#solution2:var http = require("http");var results=[];var count =0;for(var i=0;i<3;i++){httpGet(i);}function httpGet(index){http.get(process.argv[index+2],function(res){res.setEncoding="utf-8";results[index]="";res.on("data",function(data){results[index] +=data;});res.on("end",function(){count++;if(count>=3){for(var i=0;i<results.length;i++){console.log(results[i]);}}});});}##参考答案var http = require(‘http‘)var bl = require(‘bl‘)var results = []var count = 0function printResults () {for (var i = 0; i < 3; i++)console.log(results[i])}function httpGet (index) {http.get(process.argv[2 + index], function (response) {response.pipe(bl(function (err, data) {if (err)return console.error(err)results[index] = data.toString()count++if (count == 3)printResults()}))})}for (var i = 0; i < 3; i++)httpGet(i)#ex10var net = require("net");var port = process.argv[2];var server = net.createServer(function(socket){socket.end(getTime()+"\n");});server.listen(port);console.log("Server started http://127.0.0.1:%s",port)function getTime(){var date = new Date();var year = date.getFullYear();var month = justify(date.getMonth()+1);var day = justify(date.getDate());var hour = justify(date.getHours());var minute = justify(date.getMinutes());return year + "-"+month+"-"+day+" "+hour+":"+minute;}function justify(str){return str<10?"0"+str:str;}#ex11var http = require("http");var fs = require("fs");var server = http.createServer(function(req,res){res.writeHead(200,{"content-type":"text/plain"});fs.createReadStream(process.argv[3]).pipe(res);});server.listen(process.argv[2]);#ex12var http = require("http");http.createServer(function(req,res){var post = "";req.on(‘data‘,function(chunk){post += chunk;});req.on(‘end‘,function(){post = post.toUpperCase();res.end(post);});}).listen(process.argv[2]);#参考答案:var http = require(‘http‘)var map = require(‘through2-map‘)var server = http.createServer(function (req, res) {if (req.method != ‘POST‘)return res.end(‘send me a POST\n‘)req.pipe(map(function (chunk) {return chunk.toString().toUpperCase()})).pipe(res)})server.listen(Number(process.argv[2]))#ex13var http = require("http");var url = require("url");http.createServer(function(req,res){var url2 = url.parse(req.url,true);var pathname = url2.pathname;var iso = url2.query.iso;var date = new Date(iso);var result;res.writeHead(200,{"Content-Type":"application/json"});if(pathname == "/api/parsetime"){result = {"hour":date.getHours(),"minute":date.getMinutes(),"second":date.getSeconds()};res.end(JSON.stringify(result));}else if(pathname == "/api/unixtime"){result = {"unixtime":date.getTime()};res.end(JSON.stringify(result));}}).listen(process.argv[2]);
标签:
原文地址:http://www.cnblogs.com/homer3000/p/4667322.html