《The Node Beginner Book》的中文版《Node入门》已经发布,地址:http://nodebeginner.org/index-zh-cn.html 。
此书网页版内容100%公开,如果想要在手持设备(ipad,kindle)或者以pdf格式阅读,又或者支持作者和译者,可以购买收费中文电子版。
以下是本书的勘误列表,会经常更新,并定时修正和改正(由于修改需要原作者才能改,因此修改频率不会很频繁,采取收集多处错误后一并修改更新)。
- 【分析HTTP服务器】 有两处把“createServer” 写成了 “creatServer”。
(请注意,当我们在服务器访问网页时,我们的服务器可能会输出两次“Request received.”。那是因为大部分服务器都会在你访问 http://localhost:8888 /时尝试读取 http://localhost:8888/favicon.ico )
服务器应该是浏览器
嗯,看完了。不错。发现最后一个例子的地方有问题, 主要是formidable设置uploadDir的问题。 另外补充了如何通过formidable获取表单内容的方法。 在Cnodejs上发了话题说明这个问题的:链接是:《Nodejs入门》一书中代码存在的问题
刚有看了一篇通过eclipse插件来调试nodejs的文章,通过debug能够详细看到参数的传递。通过debug,可以验证《Node入门》提到的nodejs是不提供数据缓存的。可以自己试着跟中一下其中的数据变化。
我有一个问题… 在执行exec相关的那段解决阻塞任务的部分我存在一个问题,我用windows执行的命令是dir… 我将stdout输出到log,显示正常,虽然有乱码,但好歹是显示正常。 但却无法response到前端浏览器。 有人和我出同样的问题吗?求解…
最后的代码有些小问题,需要修改requestHandlers.js中的upload和show方法,修改后如下:function upload(response, request) { console.log(“Request handler ‘upload’ was called.”);
var form = new formidable.IncomingForm();
form.uploadDir=’tmp’;
console.log(“about to parse”);
form.parse(request, function(error, fields, files) {
console.log(“parsing done”);
fs.renameSync(files.upload.path, “./tmp/Pomelo.jpg”);
response.writeHead(200, {"Content-Type": "text/html"});
response.write("received image:
");
response.write("");
response.end();
});
}
function show(response) { console.log(“Request handler ‘show’ was called.”); fs.readFile("./tmp/Pomelo.jpg", "binary", function(error, file) { if(error) { response.writeHead(500, {"Content-Type": "text/plain"}); response.write(error + “\n”); response.end(); } else { response.writeHead(200, {"Content-Type": "image/jpg"}); response.write(file, “binary”); response.end(); } }); } 不然会抱错