zoukankan      html  css  js  c++  java
  • Node.Js的Module System 以及一些常用 Module

        Node.Js学习就按照这本书的流程来。image

        在第7章结束与第10章结束时分别自己出一个小项目练练手。Node.Js的入门学习计划是这样。

        目录:image

        QQ:1045642972 欢迎来索书以及讨论Node.Js。


     

    Node.Js Demo

        Node.Js官网提供了一个最基本的Demo Code:

    var http = require('http');
    http.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.end('Hello World');
    }).listen(1337, '127.0.0.1');
    console.log('Server running at http://127.0.0.1:1337/');

        运行之后,浏览器中输入URL,结果:image

        require('http'); 就是从Node.Js提供的http 这个module中获取导出的对象,以进行之后的创建侦听端口的操作。


     

    Module

        Module System的4个要点:

    • 每个Js文件都映射一个Module。
    • 在每个Js文件中,都可以通过module这个变量,来直接操作到Module。
    • 导出模块借助于module.exports这个变量
    • 导入模块借助于require这个全局函数。

        直接上代码来说明

        文件结构:imagePS:由于Js没有main(),Node.Js社区中约定将主流程写在app.js中。

        utility模块如下:

    var title = "Hello Node";
    
    module.exports = {
        SetTitle : function(titleName){
            title = titleName;
        },
        Output : function () {
            console.log(title);
        }
    }

        app.js对于该模块的测试代码如下:

    var module = require("./utility");
    
    module.SetTitle("Hello CNBLOG");
    module.Output();
    
    console.log(module.title);

        结果:

        image

       Node.Js的Module是非常安全的,每个module只能拿到exports变量出来的东西。


     

    Path Module

        提供与文件路径有关的功能,并且可以适应操作系统的环境(即Windows的与Unix的/)。

        DEMO(测试环境为Windows):

    var path = require("path");
    
    console.log(path.normalize("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
    //Output:C:UsersGuanWebstormProjectsNodeStudy01app.js
    
    console.log(path.join("C:/Users/Guan/WebstormProjects", "NodeStudy01", "app.js"));
    //Output:C:UsersGuanWebstormProjectsNodeStudy01app.js
    
    console.log(path.dirname("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
    //Output:C:/Users/Guan/WebstormProjects/NodeStudy01
    
    console.log(path.basename("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
    //Output:app.js
    
    console.log(path.extname("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
    //Output:.js

     

    fs Module

        提供了异步与同步两种模式读写文件的功能。

        DEMO:

    var fs = require('fs');
    
    fs.writeFileSync('testA.txt', "Hello Node");
    console.log(fs.readFileSync('testA.txt').toString());
    
    fs.writeFile('testB.txt', "Hello Node", function () {
        console.log(fs.readFileSync('testB.txt').toString());
    });

     

    os Module

        该模块提供了获取当前系统OS有关的功能,如:获取CPU核数,内存余量等。

        DEMO:

    console.log('Total Memory', os.totalmem(), 'Bytes');
    console.log('Available Memory', os.freemem() , 'Bytes');
    console.log('This machine has', os.cpus().length, 'CPUs');

        当然,Module还有很多,具体参考Node.Js官网的API DOC。

  • 相关阅读:
    Java学习开篇
    《我的姐姐》
    世上本无事,庸人自扰之
    这48小时
    补觉
    淡定
    es java api 设置index mapping 报错 mapping source must be pairs of fieldnames and properties definition.
    java mongodb groupby分组查询
    linux 常用命令
    mongodb too many users are authenticated
  • 原文地址:https://www.cnblogs.com/E-WALKER/p/4592115.html
Copyright © 2011-2022 走看看