Node的模块之fs,readline,url

node的模块

  1. require:导入一个模块
  2. exports:导出模块
  3. module.exports:导出模块
  • 代码(一)
    a.js:
    //以函数的形式进行导出,函数的名称为li
    exports.li = function(){
    console.log("heheda!");
    }

      b.js:
      //因为a.js不是核心模块,所以使用require时要使用路径
      var mo = require('./a.js');
      //直接调用函数,此时的函数相当于mo模块的方法
      mo.li();
    
  • 代码(二)
    a.js:
    function li(){
    console.log('hello nodejs');
    }
    //将函数作为模块导出
    module.exports = li;

      b.js:
      //导出模块
      var mo = require('./a.js');
      mo();
    
      *tip:所有的exports收集到的属性和方法,都赋值给了    Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。
      如果,Module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。*
    

node的文件操作

  1. 文件操作使用文件系统模块fs

  2. 操作文件有两种方法,同步操作和异步操作。
    同步读取:fs.readFileSync()
    异步读取:fs.readFile(文件地址,文件编码,回调函数(err,data))
    eg:

     //导入文件系统模块
     var fs = require('fs');
     //读取文件,第一个参数是文件路径,第二个参数是一个可选参数,是文件的格式,第三个参数是回调函数
     //回调函数的参数,第一个参数是错误对象,第二个参数是读取文件的内容
     fs.readFile('1.txt',function(err,data){
             //判断是否出错
           if(err){
                   console.log(err);
             } else {
                    //toString():将对象转化为字符串
                     console.log(data.toString());
             }
     });
    

异步模式下写入文件的语法格式:
fs.writeFile(filename, data[, options], callback(err))
如果文件存在,该方法写入的内容会覆盖旧的文件内容。

node的io键盘交互

tip:Readline是node里实现标准输入输出的封装好的模块。通过这个模块我们可以以逐行的方式读取数据流。eg:

    //导入readline模块
     var readline = require('readline');
    //创建readline接口实例
    var rl = readline.createInterface({
        //使用全局对象process进行获取输入和输出的对象
        input:process.stdin,
        output:process.stdout
    });
    //设置提示符
    rl.setPrompt('请输入一些东西');
    rl.prompt();
    rl.on('line',(line) => {
        var str = line.trim();
        console.log(123);
        rl.prompt();
    }).on('close',() => {
        console.log('exit');
        process.exit();
    });

tip:

  • 方法setPromat(promat),就是给每一行设置一个提示符
  • prompt:就是在等待用户输入数据,以行为单位读取数据.
    + 这里又监听了’line’ 事件,因为promat方法调用一次就只会读取一次数据,所以,在这个方法又调用了一次promat方法,这样就可以继续读取用户输入,从而达到一种命令行的效果。

node的url判断渲染模块

    //导入http模块
    var http = require("http");
    //导入文件系统模块
    var fs = require("fs");
    //导入url模块
    var urlapi = require("url");

    //创建http.server实例
    http.createServer(function(req,res){
       //解析请求的URL
        var url = urlapi.parse(req.url);
        console.log(url.pathname);
    }).listen(3000);

tip:可以通过判断url.pathname的不同渲染不同的页面

作业

    nodejs实现IO键盘交互或浏览器输入交互
    nodejs判断url请求渲染2个简单的模板
    写3个静态的页面,首页,列表页,详情页
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    w_zhuan阅读 3,639评论 2 41
  • topics: 1.The Node.js philosophy 2.The reactor pattern 3....
    宫若石阅读 1,125评论 0 1
  • 个人入门学习用笔记、不过多作为参考依据。如有错误欢迎斧正 目录 简书好像不支持锚点、复制搜索(反正也是写给我自己看...
    kirito_song阅读 2,495评论 1 37
  • Node.js是目前非常火热的技术,但是它的诞生经历却很奇特。 众所周知,在Netscape设计出JavaScri...
    Myselfyan阅读 4,093评论 2 58
  • 1 Node.js模块的实现 之前在网上查阅了许多介绍Node.js的文章,可惜对于Node.js的模块机制大都着...
    zlx_2017阅读 1,279评论 0 1