乐趣区

nodejs入门一简单的服务和文件请求

hello world!

知识点:response.write(), response.end()

const http = require('http')

let server = http.createServer(function(request, response){response.write('hello world!'); // 把内容发个客户端(浏览器)response.end() // 结束请求, 断开链接,不写 end 浏览器会以为数据没发完,一直转圈})
server.listen(8080)

如何从文件中读写数据

知识点:fs 模块,fs.writeFile(path, data, callback)fs.readFile(path, callback)

const fs = require('fs');
  
fs.writeFile('./a.txt', '学习 fs 模块', function(err){if(err){console.log('写入失败')
 }else{console.log('写入完成')
 }
})

fs.readFile('./a.txt', function(err, data){if(err){console.log(err)
 }else{console.log(data)
    // console.log(data.toString()) // 如果只是文本,可以用同 toString() 方法}
})

node XX.js 运行文件,提示写入完成,会发现我们的目录下出现了 a.txt 文件。

读文件成功后会输出 Buffer 数据,Buffer 数据是原始的二进制数据,因为 nodejs 出了处理文字数据外,也会处理文件、图片数据等,随便的转成字符串有的数据就毁了。

buffer 数据转换成字符串是给人看的,机器不需要看,直接返回给客户端可以直接显示

请求文件

知识点:req.urlres.writeHeader

const http = require('http')
const fs = require('fs')

let server = http.createServer(function(req, res){console.log(req.url) // 查看请求的 url
     fs.readFile(`files@{req.url}`, (err, data)=>{if(err){res.writeHeader(404)
             res.write('Not Found!')
             res.end();}else{res.write(data); // 注意:这里没有转换成字符串,浏览器可以直接显示。res.end();}
     })
})
server.listen(8080)

我们新建文件夹 files,新建一个 1.html 文件,写入一些内容。
运行 node 服务后,我们请求 127.0.0.1:8080/1.html, 可以看到我们可以访问文件了。

图:【新建文件夹 files】


图:【访问 1.html 文件】

退出移动版