node.js 学习02

读写文件中的路径问题

  1. readFile()读取文件函数中的./(相对路径)这个参数,相对的是执行node命令的路径,而不是相对于正在执行的这个js文件来查找。为了解决这个问题:
    __dirname(两个下划线):表示当前正在执行的js文件所在的目录
    __filename:表示当前正在执行的js文件的完整路径
    let filename = __dirname+'\\'+'hello.txt'
    上面的代码中:'\'的第一个\表示转义字符,hello.txt表示的是要读取的文件

    通过path模块进行路径拼接

  2. 使用path模块进行路径拼接的好处:不用来考虑操作系统的兼容性
  3. let path = require('path'); let filename = path.join(__dirname,'hello.txt');

    通过fs模块创建文件夹

  4. 例如创建fs文件夹,fs文件夹下面有“笔记”文件夹

    let fs = require('fs'); fs.mkdir('./fs',function(err){ if(err){ throw err; } }); fs.mkdir('./fs/笔记',function(err){ if(err){ throw err; } });

需要注意的一些问题

  1. 异步操作无法通过try-catch来捕获异常,需要通过判断err来判断是否出错。
  2. 同步操作可以通过try-catch来捕获异常。
  3. 不要使用fs.exists(path,callback)来判断文件是否存在,直接判断error即可。
  4. 文件操作时的路径问题
    • 在读写文件的时候‘./’表示的是当前执行node命令的那个路径,不是被执行的js文件的路径。
    • __dirname 表示的永远是“当前被执行的js的目录”
    • __filename 表示的是“被执行的js的文件名(含路径)”

通过node.js编写http服务程序,极简版本

步骤

  1. 加载http模块
  2. 创建http服务
  3. 为http服务对象添加request事件处理程序
  4. 开启http服务监听,准备接收客户端请求

    `
    //http服务程序

    //1.加载http服务
    let http = require('http');

    //2.创建一个http服务对象
    let server = http.createServer();

    //3.监听用户的请求事件
    //request 对象包含了用户请求报文中的所有内容,通过request对象可以获取所有用户提交过来的数据
    //response 对象用来向用户相应一些数据,当服务器要向客户端响应数据的时候必须使用response对象
    //request 简写为req response简写为res
    server.on('request',function(req,res){
    //向浏览器传回响应
    res.write('hello world');
    //对于每一个请求服务器都必须结束响应,否则的话浏览器会认为服务器响应一只没有结束、
    res.end();
    })

    //4.启动服务
    server.listen(8080,function(){
    console.log('服务器启动了,请访问“http://localhost:8080”');
    })`

猜你喜欢

转载自www.cnblogs.com/codeofmine/p/9452417.html