美文网首页
Node的模块之fs,readline,url

Node的模块之fs,readline,url

作者: 小宇大神 | 来源:发表于2016-09-12 22:15 被阅读0次

    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的模块之fs,readline,url

          本文链接:https://www.haomeiwen.com/subject/wanpettx.html