node.js 操作文件的是 fs这个类
1.读取文件
用的是 fs.readFile() 和 fs.readFileSync();创建一个 read_file文件
const fs = require('fs'); module.exports = { readSync : (path)=>{ //同步读文件 let data = fs.readFileSync(path,'utf-8'); return data; }, read : (path,fn)=>{ //异步读文件 fs.readFile(path,'utf-8',(err,data)=>{ if(err){ throw err; }else { if(typeof fn === 'function'){ fn(data); } } }); } };
然后导入并执行
const read = require('./read_file'); const http = require('http'); //导入http const hostname = '192.168.1.108'; //ip地址 随便写 如需要在局域网内,用手机访问,则需要将其设置为电脑的ipv4地址 const port = 3000; //端口号 const server = http.createServer((req, res) => { //创建一个server res.statusCode = 200; res.setHeader('Content-type', 'text/plain;charset = utf-8'); if (req.url !== '/favicon.ico') { //清除二次访问 read.read('./my_directory/demo.txt',(data)=>{ console.log('我是异步获取的'+data); res.write(data); res.end(); //用于关闭连接 若是用的异步,则需将end放在回调函数里,否则会报错 }); // console.log(read.readSync('./my_directory/demo.txt')); // res.end(); //用于关闭连接 同步就不需要 } }); server.listen(port, hostname, () => { //监听server console.log(`服务器运行在http://${hostname}:${port}/`); });
2.写入文件
用的是fs.writeFile() 和fs.writeFileSync();
const fs = require('fs'); module.exports = { writeSync : (file,data)=>{ //同步写入 fs.writeFileSync(file,data,'utf-8'); console.log('同步写入完成'); }, writeAsync : (file,data)=>{ //异步写入 fs.writeFile(file,data,'utf-8',(err)=>{ if(err){ throw err; } console.log('异步写入完成'); }); } };
const write = require('./write_file'); const http = require('http'); //导入http const hostname = '192.168.1.108'; //ip地址 随便写 如需要在局域网内,用手机访问,则需要将其设置为电脑的ipv4地址 const port = 3000; //端口号 const server = http.createServer((req, res) => { //创建一个server res.statusCode = 200; res.setHeader('Content-type', 'text/plain;charset = utf-8'); if (req.url !== '/favicon.ico') { //清除二次访问 write.writeAsync('./my_directory/write_in.txt','我是异步写入的内容'); write.writeSync('./my_directory/write_in.txt','我是同步写入的内容'); res.end(); //用于关闭连接 同步就不需要 } }); server.listen(port, hostname, () => { //监听server console.log(`服务器运行在http://${hostname}:${port}/`); });