node.js教程learnyounode 闯关答案

  1. #node.js教程learnyounode 闯关答案
  2. #ex1
  3. console.log("HELLO WORLD");
  4. #ex2
  5. var sum =0;
  6. for(var i =2;i<process.argv.length;i+=){
  7. sum+=parseFloat(process.argv[i]);
  8. }
  9. console.log(sum);
  10. #ex3
  11. var fs = require(‘fs‘);
  12. var pathname = process.argv[2];
  13. //console.log(pathname);
  14. var buf = fs.readFileSync(pathname);
  15. var results = buf.toString().split("\n");
  16. //console.log(results);
  17. console.log(results.length-1);
  18. #ex4
  19. var fs = require(‘fs‘);
  20. var pathname = process.argv[2];
  21. fs.readFile(pathname,handle);
  22. function handle(err,data){
  23. if(err){
  24. console.error(err);
  25. return;
  26. }
  27. var results = data.toString().split("\n");
  28. console.log(results.length-1);
  29. }
  30. #ex5
  31. var fs = require(‘fs‘);
  32. var path = require(‘path‘);
  33. var pathname = process.argv[2];
  34. var extname = process.argv[3];
  35. fs.readdir(pathname,function(err,files){
  36. for(var i=0;i<files.length;i++){
  37. if("."+extname == path.extname(files[i])){
  38. console.log(files[i]);
  39. }
  40. }
  41. });
  42. #ex6
  43. ##program.js
  44. var mymodule = require("./mymodule");
  45. var pathname = process.argv[2];
  46. var extname = process.argv[3];
  47. mymodule(pathname,extname,callback);
  48. function callback(err,data){
  49. if(err){
  50. console.error(err);
  51. return ;
  52. }
  53. data.forEach(function(file){
  54. console.log(file);
  55. });
  56. }
  57. ##mymodule.js
  58. var fs = require(‘fs‘);
  59. var path = require(‘path‘);
  60. module.exports = function (pathname,extname,callback){
  61. var results = new Array();
  62. var cnt =0;
  63. fs.readdir(pathname,function(err,files){
  64. if(err){
  65. return callback(err);
  66. }
  67. for(var i=0;i<files.length;i++){
  68. if("."+extname == path.extname(files[i])){
  69. results[cnt++] = files[i];
  70. }
  71. }
  72. //console.log(results);
  73. callback(null,results);
  74. });
  75. };
  76. #ex7
  77. var http = require("http");
  78. var url = process.argv[2];
  79. http.get(url, function(res) {
  80. res.setEncoding("utf-8");
  81. res.on("data",function(data){
  82. console.log(data);
  83. });
  84. });
  85. #ex8
  86. var http = require("http");
  87. var url = process.argv[2];
  88. http.get(url, function(res) {
  89. res.setEncoding("utf-8");
  90. var results ="";
  91. res.on("data",function(data){
  92. results +=data;
  93. });
  94. res.on("end",function(){
  95. console.log(results.length);
  96. console.log(results);
  97. });
  98. });
  99. #ex9
  100. #solution1:
  101. var http = require("http");
  102. http.get(process.argv[2],handle1);
  103. http.get(process.argv[3],handle2);
  104. http.get(process.argv[4],handle3);
  105. var results= ["","",""];
  106. function handle1(res){
  107. res.setEncoding="utf-8";
  108. res.on("data",function(data){
  109. results[0] +=data;
  110. });
  111. res.on("end",function(){
  112. //console.log(results[0]);
  113. });
  114. }
  115. function handle2(res){
  116. res.setEncoding="utf-8";
  117. res.on("data",function(data){
  118. results[1] +=data;
  119. });
  120. res.on("end",function(){
  121. //console.log(results[1].toString());
  122. });
  123. }
  124. function handle3(res){
  125. res.setEncoding="utf-8";
  126. res.on("data",function(data){
  127. results[2] +=data;
  128. });
  129. res.on("end",function(){
  130. console.log(results[0].toString());
  131. console.log(results[1].toString());
  132. console.log(results[2].toString());
  133. });
  134. }
  135. #solution2:
  136. var http = require("http");
  137. var results=[];
  138. var count =0;
  139. for(var i=0;i<3;i++){
  140. httpGet(i);
  141. }
  142. function httpGet(index){
  143. http.get(process.argv[index+2],function(res){
  144. res.setEncoding="utf-8";
  145. results[index]="";
  146. res.on("data",function(data){
  147. results[index] +=data;
  148. });
  149. res.on("end",function(){
  150. count++;
  151. if(count>=3){
  152. for(var i=0;i<results.length;i++){
  153. console.log(results[i]);
  154. }
  155. }
  156. });
  157. });
  158. }
  159. ##参考答案
  160. var http = require(‘http‘)
  161. var bl = require(‘bl‘)
  162. var results = []
  163. var count = 0
  164. function printResults () {
  165. for (var i = 0; i < 3; i++)
  166. console.log(results[i])
  167. }
  168. function httpGet (index) {
  169. http.get(process.argv[2 + index], function (response) {
  170. response.pipe(bl(function (err, data) {
  171. if (err)
  172. return console.error(err)
  173. results[index] = data.toString()
  174. count++
  175. if (count == 3)
  176. printResults()
  177. }))
  178. })
  179. }
  180. for (var i = 0; i < 3; i++)
  181. httpGet(i)
  182. #ex10
  183. var net = require("net");
  184. var port = process.argv[2];
  185. var server = net.createServer(function(socket){
  186. socket.end(getTime()+"\n");
  187. });
  188. server.listen(port);
  189. console.log("Server started http://127.0.0.1:%s",port)
  190. function getTime(){
  191. var date = new Date();
  192. var year = date.getFullYear();
  193. var month = justify(date.getMonth()+1);
  194. var day = justify(date.getDate());
  195. var hour = justify(date.getHours());
  196. var minute = justify(date.getMinutes());
  197. return year + "-"+month+"-"+day+" "+hour+":"+minute;
  198. }
  199. function justify(str){
  200. return str<10?"0"+str:str;
  201. }
  202. #ex11
  203. var http = require("http");
  204. var fs = require("fs");
  205. var server = http.createServer(function(req,res){
  206. res.writeHead(200,{"content-type":"text/plain"});
  207. fs.createReadStream(process.argv[3]).pipe(res);
  208. });
  209. server.listen(process.argv[2]);
  210. #ex12
  211. var http = require("http");
  212. http.createServer(function(req,res){
  213. var post = "";
  214. req.on(‘data‘,function(chunk){
  215. post += chunk;
  216. });
  217. req.on(‘end‘,function(){
  218. post = post.toUpperCase();
  219. res.end(post);
  220. });
  221. }).listen(process.argv[2]);
  222. #参考答案:
  223. var http = require(‘http‘)
  224. var map = require(‘through2-map‘)
  225. var server = http.createServer(function (req, res) {
  226. if (req.method != ‘POST‘)
  227. return res.end(‘send me a POST\n‘)
  228. req.pipe(map(function (chunk) {
  229. return chunk.toString().toUpperCase()
  230. })).pipe(res)
  231. })
  232. server.listen(Number(process.argv[2]))
  233. #ex13
  234. var http = require("http");
  235. var url = require("url");
  236. http.createServer(function(req,res){
  237. var url2 = url.parse(req.url,true);
  238. var pathname = url2.pathname;
  239. var iso = url2.query.iso;
  240. var date = new Date(iso);
  241. var result;
  242. res.writeHead(200,{"Content-Type":"application/json"});
  243. if(pathname == "/api/parsetime"){
  244. result = {
  245. "hour":date.getHours(),
  246. "minute":date.getMinutes(),
  247. "second":date.getSeconds()
  248. };
  249. res.end(JSON.stringify(result));
  250. }else if(pathname == "/api/unixtime"){
  251. result = {
  252. "unixtime":date.getTime()
  253. };
  254. res.end(JSON.stringify(result));
  255. }
  256. }).listen(process.argv[2]);

来自为知笔记(Wiz)

时间: 2024-10-08 20:08:56

node.js教程learnyounode 闯关答案的相关文章

10+ 最佳的 Node.js 教程和实例

如果你正在找Node.js的学习资料及指南,那么请继续(阅读),我们的教程将会覆盖即时聊天应用.API服务编写.投票问卷应用.人物投票APP.社交授权. Node.js on Raspberry Pi等等. 以下是Node.js入门的简单介绍,如果你对Node.js略有了解可以直接跳过此部分. 那什么是Node.js呢? Node.js是迄今运用最多的服务端JavaScript运行时环境,使用JavaScript开发跨平台的实时WEB应用. Node.js基于Google的V8 JavaScri

Node.js 教程 01 - 简介、安装及配置

目录: Node.js 教程 01 - 简介.安装及配置 Node.js 教程 02 - 经典的Hello World Node.js 教程 03 - 创建HTTP服务器 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好. 谁适合阅读本教程?

Node.js教程系列~目录

Node.js这个东西在近几年火起来了,而且会一直火下去,无论在infoq还是在cnblogs,csdn上,都可以到处看到它的样子,它主推的应该就是异步式I/O 吧,是的,设计的很完美,很吸引人,虽然它与正常思维是不同的,但是当你真正认识它后,也会足够的让你爱上它!Node.js确实改变了我的编程观念,改变了我对计算机系统的认识! 名人总结的话,我们应该回味个几百次 同步式I/O: 线程在执行中如果遇到磁盘读写或网络通信(统称为I/O操作),通常要耗费较长的时间,这时操作系统会剥夺这个线程的CP

Node.js 教程

Node.js 教程nodejs简单的说 Node.js 就是运行在服务端的 JavaScript.Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台.Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好.谁适合阅读本教程?如果你是一个前端程序员,你不懂得像PHP.Python或Ruby等动态编程语言,然后你想创建自己的服务,那么Node.js是一个非常好的选择.No

Node.js 教程 04 - 模块系统

前言: Node.js的模块系统类似于C/C++的文件引用,可以声明对象,也可以定义类 创建对象. 大家这么理解,就简单了. 定义: 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统. 模块是Node.js应用程序的基本组成部分,文件和模块是一一对应的. 换言之,一个Node.js文件就是一个模块,这个文件可能是Javascript代码.JSON或者编译过的C/C++扩展. 实例一: 这个实例演示的是,在hello.js中创建一个方法,然后在主程序main.js中调

[整理]Node入门 &#187; 一本全面的Node.js教程 - Demo实践所遇到的问题

花了一个上午看完[转载]Node入门 » 一本全面的Node.js教程 根据里面的Demo自己手动实现过程中还是需到写问题,特整理在此. <1>.由于node.msi安装包已经自动添加了系统环境变量,所以可以在任意地方路径下运行node xxx.js.<2>.确定2个环境变量是否已添加(1)一个是PATH上增加node.exe的目录C:\Program Files\nodejs,(已自动添加)(2)一个是增加环境变量NODE_PATH,值为C:\Program Files\node

Node.js教程(一)入门和学习资源

换了个实习单位,事情暂时不多,学习一下新技术,刷刷面试题,日子就这样过了. 今天开始接触node.js,node的编程思想是和我之前所学的所有语音都不同的,用一句话概括node.js Node.js 是一个让 JavaScript 运行在服务端的开发平台 教程网上都有,个人习惯是先从草根写的文章看起,毕竟他们写的比较灵活,不像官方文档那么严肃,也不像书本那么啰嗦,比较适合入门. 首先当然是安装,在windows上的安装算是简单的了,感谢Micro~ Node.js安装教程 安装完成,接下来就是入

Node.js教程(二)入门阶段的一些坑

一.npm已经内置 用网上的教程安装npm时总是提示版本出错,难道最新版的有bug 执行一下 npm -V 呵呵,已经安装好了 最新版的node.js已经内置好了npm,不需要再自己手动安装 二.express命令不能识别 安装完express后,执行express -V提示 express不是内部或外部命令 解决方法,参考一下链接 点击打开链接 三.express不能加载 代码中有require('express'),时报错 原因:没有把node_modules文件夹复制到node.exe同目

[转载]Node入门 &#187; 一本全面的Node.js教程

http://www.nodebeginner.org/index-zh-cn.html 作者: Manuel Kiessling 翻译: goddyzhao & GrayZhang & MondayChen 关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版.因此,只有当进行错误更正以及针对新版本Node.js的改动进行对应的修正时,才会进行