1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > nodejs基础 ps模块常用API用法

nodejs基础 ps模块常用API用法

时间:2019-09-02 04:06:48

相关推荐

nodejs基础 ps模块常用API用法

nodejs的fs模块就是针对文件和文件夹进行一系列的操作

常用的fs模块API(感兴趣的可以去node官网看更多的)

fs.readFile():用来读取文件内容的函数

fs.readdir():读取一个文件夹的内容

fs.wurteFuke():文件写入内容

fs.mkdir():创建文件夹

fs.stat():文件状态

1.fs.readFile()

使用fs.readFile()来读取某个文件中的内容

1.首先引入http和fs模块,使用http.createServer()创建一个服务器,里面有两个参数

req:接收到的请求对象,包含有请求信息

res:响应对象,包含有响应信息

2.设置响应头

res.writeHead(200, {// 指定相应的内容为html文本类型'content-type': 'text/html;charset=utf-8',// 解决跨域问题,让所有'Access-Control-Allow-Origin': '*'})

3.这里做以下判断,如果不做每次输出的结果都会输出两次,判断是否有页面标题图标的请求,如果有直接false

if (req.url == '/favicon.ico') {return false}

4.开始使用 fs.readFile, fs.readFile两个参数一个回调函数

第一个是要请求的文件名,意思就是读取哪个文件的内容

第二个是为了输出时不出现乱码,把utf8编码格式写进去

第三个是回调函数,将读取到的内容以json字符串的形式输出

// fs.readFile(路径,配置项,回调函数) 读取文件内容,并返回到前端fs.readFile('./text.md', 'utf-8', (err, data) => {if (err) {throw err}

5.最后为监听事件

serve.listen方法来监听服务器启动

server.listen(port,hostname,callback)

port:端口号,取值范围0~65535 但是有些特殊含义的,我们避免使用

hostname:主机名,‘127.0.0.1’ 或者localhost 都是本机的ip地址

callback:在服务器启动后触发

let hostname = '127.0.0.1';let port = 126serve.listen(port, hostname, () => {console.log(`running:http://${hostname}:${port}`);})

let http = require('http')let fs = require('fs')http.createServer((req, res) => {res.writeHead(200, {// 指定相应的内容为html文本类型'content-type': 'text/html;charset=utf-8',// 解决跨域问题,让所有'Access-Control-Allow-Origin': '*'})if (req.url == '/favicon.ico') {return false}// fs.readFile(路径,配置项,回调函数) 读取文件内容,并返回到前端fs.readFile('./text.md', 'utf-8', (err, data) => {if (err) {throw err}console.log(data);res.write(JSON.stringify(data))res.end()})let hostname = '127.0.0.1';let port = 126serve.listen(port, hostname, () => {console.log(`running:http://${hostname}:${port}`);})

2.fs.readdir()

fs.readdir()主要用来读取一个文件夹的内容,将整个文件夹的文件以数组的形式返回,也是相同的步骤,代码也类似只是把其中api方法更改了一下

首先我们拿到的是整个文件夹,因为是以数组的形式返回的,如果想操作里面的文件,可以直接在fs.readdir()里面嵌套方法

以数组的形式返回文件

注意:我在写这里的时候一直出现报错,原因是这个方法都是异步操作,所以会先执行res.end(),当执行完毕end时,此时你的上一步操作还没有执行,所以会报错,这里把end放在方法里面就可以了

// 找到当前目录下的所有文件夹// 文件夹以数组的形式返回fs.readdir('./', (err, files) => {if (err) {throw err}console.log(files);// 找到第一个文件夹,返回内容fs.readFile(`./${files[0]}`, 'utf-8', (err, data) => {if (err) {throw err}console.log(data);res.write(JSON.stringify(data))// fs.readFile为异步请求,所以会先执行res.end(),因为上一步还没执行直接执行end会报错,所以要把end放在里面res.end()res.end()})

let http = require('http')let fs = require('fs')http.createServer((req, res) => {res.writeHead(200, {// 指定相应的内容为html文本类型'content-type': 'text/html;charset=utf-8',// 解决跨域问题,让所有'Access-Control-Allow-Origin': '*'})if (req.url == '/favicon.ico') {return false}// 找到当前目录下的所有文件夹// 文件夹以数组的形式返回fs.readdir('./', (err, files) => {if (err) {throw err}console.log(files);// 找到第一个文件夹,返回内容fs.readFile(`./${files[0]}`, 'utf-8', (err, data) => {if (err) {throw err}console.log(data);res.write(JSON.stringify(data))// fs.readFile为异步请求,所以会先执行res.end(),因为上一步还没执行直接执行end会报错,所以要把end放在里面res.end()res.end()})})}).listen(133, '127.0.0.1', () => console.log('running'))

最终输出下标为0的文件的内容

3.fs.wurteFuke()

将某些内容写进一个文件中,但注意,写入的内容会覆盖原先内容

fs.wurteFuke()参数

1.要写入的文件位置

2.写入的内容

3.回调函数

let http = require('http')let fs = require('fs')let person = [{name: '李逵',age: 18,job: '杀老虎'},{name: '高俅',age: 38,job: '踢球'},{name: '高俅',age: 38,job: '宦官'},{name: '宋江',age: 28,job: '梁山扛把子'},{name: '西门庆',age: 25,job: '不干好事'}];http.createServer((req, res) => {res.writeHead(200, {// 指定相应的内容为html文本类型'content-type': 'text/html;charset=utf-8',})if (req.url == '/favicon.ico') {return false}// 文件写入内容,写入的内容会覆盖之前的内容// 要写入的文件,写入内容,回调函数fs.writeFile('./demo.json', JSON.stringify(person), err => {if (err)throw errconsole.log('success');res.end()})}).listen(133, '127.0.0.1', () => console.log('running'))

4.fs.mkdir()

fs.mkdir()选择某个路径,在该路径下创建文件夹

注意:如果想在创建的文件夹下在创建字文件夹,需要在fs.mkdir()内添加一个参数

let http = require('http')let fs = require('fs')http.createServer((req, res) => {res.writeHead(200, {// 指定相应的内容为html文本类型'content-type': 'text/html;charset=utf-8',})if (req.url == '/favicon.ico') {return false}// 创建文件 异步创建目录fs.mkdir('./wjj', (err) => {if (err) throw errconsole.log('secuuse');res.end()})}).listen(133, '127.0.0.1', () => console.log('running'))

5.fs.stat()

获取一个文件的信息

let http = require('http')let fs = require('fs')http.createServer((req, res) => {res.writeHead(200, {// 指定相应的内容为html文本类型'content-type': 'text/html;charset=utf-8',})if (req.url == '/favicon.ico') {return false}// 查询文件状态fs.stat('./demo.json', (err, stats) => {if (err) throw err// stats 提供文件信息console.log(stats);// 文件字节大小console.log(stats.size);res.end()})}).listen(133, '127.0.0.1', () => console.log('running'))

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。