nodejsIO

文件I/O,写入是必修课之一。fs模块提供writeFile函数,可以异步的将数据写入一个文件, 如果文件已经存在则会被替换。用法如下:


例:fs.writeFile(filename, data, callback)


var fs= require("fs");
 
fs.writeFile('test.txt', 'Hello Node', function (err) {
   if (err) throw err;
   console.log('Saved successfully'); //文件被保存
});
 
数据参数可以是string或者是Buffer,编码格式参数可选,默认为"utf8",回调函数只有一个参数err。






appendFile函数的基本用法
writeFile函数虽然可以写入文件,但是如果文件已经存在,我们只是想添加一部分内容,它就不能满足我们的需求了,很幸运,fs模块中还有appendFile函数,它可以将新的内容追加到已有的文件中,如果文件不存在,则会创建一个新的文件。使用方法如下:


例:fs.appendFile(文件名,数据,编码,回调函数(err));


var fs= require("fs");
 
fs.appendFile('test.txt', 'data to append', function (err) {
   if (err) throw err;
 
    //数据被添加到文件的尾部
    console.log('The "data to append" was appended to file!'); 
});
编码格式默认为"utf8",








exists函数的基本用法
如何检查一个文件是否存在呢?我想exists函数可以帮助你,用法如下:


例:fs.exists(文件,回调函数(exists));


exists的回调函数只有一个参数,类型为布尔型,通过它来表示文件是否存在。


var fs= require("fs");
 
fs.exists('/etc/passwd', function (exists) {
  console.log(exists ? "存在" : "不存在!");
});










rename函数的基本用法
修改文件名称是我们经常会遇见的事情,rename函数提供修改名称服务:


var fs= require("fs");
 
fs.rename(旧文件,新文件,回调函数(err){
   if (err) throw err;
   console.log('Successful modification,');
});












rename函数的基本用法
移动文件也是我们经常会遇见的,可是fs没有专门移动文件的函数,但是我们可以通过rename函数来达到移动文件的目的,示例如下。


var fs = require('fs');
 
fs.rename(oldPath,newPath,function (err) {
   if (err) throw err;
   console.log('renamed complete');
});














readFile函数的基本用法
读取文件是最常用到的功能之一,使用fs模块读取文件语法如下:


例:fs.readFile(文件,编码,回调函数);


var fs = require('fs');
 
fs.readFile(文件名, function (err, data) {
  if (err) throw err;
  console.log(data);
});
回调函数里面的data,就是读取的文件内容。
















unlink函数的基本用法
面对一堆垃圾的文件总是想删除。


例:fs.unlink(文件,回调函数(err));


var fs = require('fs');
 
fs.unlink(文件, function(err) {
  if (err) throw err;
  console.log('successfully deleted');
});










mkdir函数的基本用法
除了针对文件的操作,目录的创建、删除也经常遇到的,node.js中如何创建目录:


fs.mkdir(路径,权限,回调函数(err));
参数


路径:新创建的目录。
权限:可选参数,只在linux下有效,表示目录的权限,默认为0777,表示文件所有者、文件所有者所在的组的用户、所有用户,都有权限进行读、写、执行的操作。
回调函数:当发生错误时,错误信息会传递给回调函数的err参数。










删除目录也是必不可少的功能,rmdir函数可以删除指定的目录:


例:fs.rmdir(路径,回调函数(err));


var fs = require('fs');
 
fs.rmdir(path, function(err) {
  if (err) throw err;
  console.log('ok');
});












readdir函数的基本用法
readdir函数可以读取到指定目录下所有的文件,示例如下:


var fs = require('fs');
 
fs.readdir(目录,回调函数(err,files));
回调函数 (callback) 接受两个参数 (err, files) 其中 files 是一个存储目录中所包含的文件名称的数组,数组中不包括 '.' 和 '..'。
Socket.IO 是一个基于 Node.js 的实时网络库,它使得在客户端和服务器之间建立实时、双向通信变得容易。它提供了一个 WebSocket 的替代品,允许在不支持 WebSocket 的浏览器中使用轮询、长轮询和其他技术来实现实时通信。 Socket.IO 的 API 很简单,它提供了一个用于在客户端和服务器之间发送事件的消息传递机制。您可以通过监听事件来处理来自客户端和服务器的消息,并使用 emit() 方法向客户端和服务器发送消息。 在 Node.js 中使用 Socket.IO 时,您需要使用 socket.io 模块。您可以使用 npm 安装: ``` npm install socket.io ``` 然后,在您的应用程序中,您可以使用以下代码创建 Socket.IO 服务器: ```javascript const http = require('http'); const server = http.createServer(); const io = require('socket.io')(server); io.on('connection', (socket) => { console.log('a user connected'); socket.on('disconnect', () => { console.log('user disconnected'); }); }); server.listen(3000, () => { console.log('listening on *:3000'); }); ``` 这个例子创建了一个 HTTP 服务器并使用 Socket.IO 将其升级为实时服务器。当客户端连接时,'connection' 事件被触发。您可以监听此事件并处理来自客户端的消息。 在客户端,您需要使用以下代码来连接到 Socket.IO 服务器: ```javascript <script src="/socket.io/socket.io.js"></script> <script> const socket = io(); socket.on('connect', () => { console.log('connected'); }); socket.on('disconnect', () => { console.log('disconnected'); }); </script> ``` 这个例子使用客户端 Socket.IO 库连接到服务器。当连接成功时,'connect' 事件被触发。您可以监听此事件并开始向服务器发送消息。 在客户端和服务器之间发送消息非常简单。您可以使用 emit() 方法从客户端向服务器发送消息,也可以使用 socket.emit() 方法从服务器向客户端发送消息。例如,在客户端,您可以使用以下代码向服务器发送消息: ```javascript socket.emit('chat message', 'Hello, world!'); ``` 在服务器上,您可以监听 'chat message' 事件并处理来自客户端的消息: ```javascript io.on('connection', (socket) => { socket.on('chat message', (msg) => { console.log('message: ' + msg); }); }); ``` 这个例子监听 'chat message' 事件并打印从客户端发送的消息。 这只是 Socket.IO 的一小部分功能,您可以在官方文档中了解更多:https://socket.io/docs/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值