有话说在前面
nodejs跟其他服务器语言一样,可以调用服务器自身的命令来创建,读,写文件。
如何使用
在node中使用fs模块来读写文件。
读取文件用readFile 和readFileSync 方法。
在所有的方法种,有Sync的是同步方法,一般来说都是用异步的。
二者的区别是,异步方法不会妨碍后续的程序执行,同步方法会等待文件读取完毕。
//异步方法
fs.writeFile('./message.txt', '这是第一行',function(err){
if(err) console.log('写文件操作失败');
else console.log('写文件操作成功');
});
//同步方法
fs.writeFileSync('./message.txt','这是第一行');
我玩起来了!
前面已经讲过如何创建http服务和独写文件。让我们一块来做一个例子吧!
在创建好的http服务器中保存客户的信息。
我就直接上代码了:
var http=require("http");
var fs=require("fs");
var server=http.createServer(function(req,res){
if(req.url!=="/favicon.ico"){
var out=fs.createWriteStream("./request.log");
out.write("客户端请求所用方法为"+req.method+"\r\n");
out.write("客户端请求所用url字符串为"+req.url+"\r\n");
out.write("客户端请求头对象为"+JSON.stringify(req.headers)+"\r\n");
out.end("客户端请求所用http版本为:"+req.httpVersion)
}
}).listen(1337,"127.0.0.1");
/*server.on("connection",function(socket){
console.log("客户端连接已经建立!")
})*/
如果需要通过普通的form方式获取提交的表单
可以通过on去绑定req.data事件,一旦提交的内容发生变化就接收到服务器。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form action="http://127.0.0.1:1337" id="form1" method="post">
姓名:<input type="text" name="name" value="党云龙" /><br />
年龄:<input type="number" name="age" value="29" /><br />
<input type="submit" value="提交" />
</form>
</body>
</html>
var http=require("http");
var fs=require("fs");
var server=http.createServer(function(req,res){
if(req.url!=="/favicon.ico"){
req.on("data",function(data){
console.log("服务器端接收到的收据"+decodeURIComponent(data))
});
req.on("end",function(){
console.log("客户端请求数据已经全部接收完毕。")
});
}
res.end();
}).listen(1337,"127.0.0.1");