Node.js回调函数

readfile.js

function readFileCallBack(err,data) {
	if (err) {
		console.error(err);
	}else{
		console.log(data);
	}
	
}

var fs=require('fs');
fs.readFile('input.txt','utf-8',readFileCallBack);
console.log('end.');

//回调函数

var fs1=require('fs');
var data1=fs1.readFileSync('app.txt');
console.log(data1);
console.log('end2.');

//同步式读取

input.txt

No,Luke.I am your father.

app.txt

var http=require('http');

http.createServer(function(req,res){
   res.writeHead(200,{'Content-Type':'text/html'});
   res.write('<h1>Node.js</h1>');
   res.end('<p>Hello Supervisor</p>');
}).listen(3000);

console.log("HTTP server is listening at port 3000");

我把异步式读取文件和同步式读取文件放在一起,让它们分别读input.txt和app.txt的内容,结果输出:

end.
<Buffer 76 61 72 20 68 74 74 70 3d 72 65 71 75 69 72 65 28 27 68 74 74 70 27 29
3b 0d 0a 0d 0a 68 74 74 70 2e 63 72 65 61 74 65 53 65 72 76 65 72 28 66 75 6e ..
. >
end2.
No,Luke.I am your father.

好似同步式读没有成功。

结果一看,原来是同步式读没有用带有编码参数的函数调用。

加了utf-8参数就好了。

看了API也没找到那个buffer怎么来的。

明天继续学,找答案。


Here is the answer(from《Node.js开发指南》):

值得注意的是,Node.js大多数异步函数均无返回值,而同步IO函数需要try,catch来捕捉异常。

当然,不指明编码而直接输出console.log(data.toString())也可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值