path

  1. const path = require('path')
  2. //第一种方案可以使用path.join方法配合__dirname常量来实现
  3. let mypath = path.join(__dirname,'hello.txt')
  4. let mypath2 = path.join(__dirname,'myfiled','hello.txt')//第二个参数相当于上一级目录
  5. let mypath3 = path.join(__dirname,'./myfiled/hello.txt')//这样写与第二种一样
  6. console.log(mypath);
  7. console.log(mypath2);
  8. console.log(mypath3);
  9. //第二种方案resolve就简单得多,我们只需要给一个相对路径,就能得到一个绝对路径
  10. const mypath4 = path.resolve('./myfiled/hello.txt')
  11. console.log(mypath4);

fs

fs模块,是Node标准库中用于操作计算机上的文件的模块,提供了很多的方法,比如现在我们想从电脑上读取一个HTML文件,把内容返回给浏览器,就需要用到这个模块

  1. const fs = require('fs');
  2. const path = require('path');
  3. let filePath= path.join(__dirname,'hello.txt')
  4. //同步读取文件
  5. const syncContent = fs.readFileSync(filePath,'utf8')
  6. console.log(syncContent);
  7. //异步读取文件
  8. const asyncContent = fs.readFile(filePath,'utf8',(err,data)=>{
  9. //err 读取文件错误才不为空
  10. if(err){
  11. console.log(err);
  12. return
  13. }
  14. //data 读取的数据
  15. console.log(data);
  16. })
  17. console.log(asyncContent);
  18. //文件写入
  19. fs.writeFile(filePath,'Hellow!!!','utf8',err=>{
  20. console.log('写入成功');
  21. })

http

使用nodejs写一个服务器

  1. const fs = require('fs')
  2. // 1. 引入http协议,node里面已经帮我们封装好了关于这部分的API
  3. const http = require('http')
  4. // 2. 创建一个服务器对象
  5. const server = http.createServer()
  6. // 3. 绑定ip和端口
  7. server.listen(8081,'localhost')
  8. // 4. 服务器对象监听浏览器的请求
  9. server.on('request',(request,response)=>{
  10. //添加请求头,解决中文乱码问题
  11. response.setHeader('Content-Type','text/html;charset=utf-8')
  12. //返回字符串
  13. response.end('<h1>hellow my friend. 你好,我的朋友</h1>')
  14. //返回静态资源
  15. fs.readFile('./hello.txt',(err,data)=>{
  16. response.end(data)
  17. })
  18. //根据请求url(request.url)统一返回静态资源
  19. fs.readFile(__dirname+request.url,(err,data)=>{
  20. response.end(data)
  21. })
  22. //接口
  23. if(request.url === '/getArticles'){
  24. // 返回一个数组给浏览器 - 但是不能直接返回一个数组,要先把数组转换为字符串,否则会报错
  25. let json = JSON.stringify([
  26. {id:1,title:'标题1',content:'内容1'},
  27. {id:2,title:'标题2',content:'内容2'},
  28. {id:3,title:'标题3',content:'内容3'}
  29. ])
  30. response.end(json)
  31. }
  32. })