node.js 学习02

读写文件中的路径问题

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

通过path模块进行路径拼接

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

通过fs模块创建文件夹

  1. 例如创建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”');
     });
    

posted @ 2018-08-09 23:06  .helloWorld  阅读(125)  评论(0编辑  收藏  举报