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个静态的页面,首页,列表页,详情页
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,744评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,505评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,105评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,242评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,269评论 6 389
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,215评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,096评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,939评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,354评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,573评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,745评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,448评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,048评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,683评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,838评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,776评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,652评论 2 354

推荐阅读更多精彩内容

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