• node基础


             今天在网上看到了一个原来没有听说过的定义,高阶函数和偏函数。个人觉得这么个形容还是很有创意的。也可能我很土鳖没有见过世面吧!在此稍作解释。

    function hignFun(){
        return function(a,b){
            a+b;
        }
    }
    var add = hignFun();

          据说这就是高阶函数,其实这么个称谓我觉得也是比较恰当的.类比高数中的高阶函数,还是比较形象的.起码对于记忆标识这种形式的函数是有帮助的.

    var isType = function  (type) {
        return function(obj){
            toString.call(obj) == "[object "+type+"]" 
        }
    }
    var isArray() = isType("Array");

          这样的形式的函数叫做偏函数.大意就是传参进去搞个半成品,返回出来.正式使用的时候再传参完成整个操作.有点像工厂模式.高阶函数和偏函数的唯一区别就是,是否外层函数对内层函数构成影响.要这么来说,偏函数这个称谓的确很恰当.

           好了,进入正题.node的基础知识梳理.

           1,fs模块

           node的异步IO操作是其核心的最重要的技术之一。异步的操作使得避免了传统多线程模式下,频繁切换上下文的大量开销。fs模块提供了一些列的API,已经趋于成熟。

          一下给出了一些基本的常用的API示例代码。千万不要复制了去运行,仅仅提供观看功能!

    var fs= require("fs");
    
    fs.writeFile('test.txt', 'Hello Node', function (err) {
        if (err) throw err;
       console.log('Saved successfully'); //文件被保存
    });
    
    fs.appendFile("nodeNote.txt","im coming!!!",function(err){
        if (err) throw err
            console.log("data already add to end of file")
    })
    
    fs.exists("nodeNote.txt",function(flog){
        process.stdout.write(flog+"");
    })
    
    fs.rename("nodeNote.txt","Note.txt",function(err){
        if(err) throw err
            console.log("rename successfully");
    })
    
    fs.readFile("Note.txt",function  (err,data) {
        if(err){
            throw err
        }else{
            process.stdout.write(data+"
     I am data!!");
        }
    })
    
    
    fs.unlink("n.js",function(err){
        if (err) {
            throw err
        };
        process.stdout.write("remove successful")
    })
    
    fs.mkdir("n/c",function  (err) {
        if (err) {
            process.stdout.write(err)
        };
    })
    fs.rmdir("./node",function  (err) {
        if (err) {
            process.stdout.write(err)
        };
    })
    
    fs.readdir("./hz",function(err,files){
        if (err) {
            throw err
        };
        console.log(files);
    })

             以上给出的都是异步的操作,fs模块还提供了同步的操作。具体视情况而定去选择。

           2,util模块提供了一些常用的工具方法,主要有对字符串的格式化,判断变量类型等等操作。

    var util = require('util');
    
    var result;
    result = util.inspect(object, showHidden=false, depth=2)
    result = util.format("%s:%j","abs",{name:2},12);
    result = util.isArray([1,"hauzi"]);
    result = util.isDate(new Date())
    result = util.isRegExp(/d/)
    console.log(result)

              3,url模块

            URL模块主要给出了URL解析相关的一些操作。json2string,string2json。还有具体的域名解析等等

    var url = require("url");
    
    var urlString = url.parse("http://www.baidu.com");
    for(var key in urlString){
        console.log(key+" : "+urlString[key])
    }
    
    var urlString = url.format({
        host:"imooc.com",
        protocol :"https",
        port:"80",
        path:"/news"
    })
    console.log(urlString)
    var combine = url.resolve("http://baidu.com/","/news");
    console.log(combine);

              4,querystring

              querystring中主要有两个方法,stringify和parse实际上在js中也有实现。JSON.stringify,JSON.parse.那独立到querystring,顾名思义是为了query而准备的了!

    var query = require("querystring")
    
    var string = query.stringify({name:'huazi',age:22},"^","_");
    console.log(string) //name_huazi^age_22
    
    var str = query.parse('name_huazi^age_22','^','_');
    console.log(str);    //{ name: 'huazi', age: '22' }

           5,path

           做web的都知道,在处理文件的时候path是个比较麻烦的事情。没有工具的情况下只能手工的处理。当然有了path之后一切轻松了!只列出一部分哦

    var path = require("path");
    
    var newpath = path.normalize("../sbin/./apm_available///sbin");
    var newpath = path.join("url.js//newpath","//mnt/newpath")
    var newpath = path.dirname("./nodeNote/dirname/path");
    var newpath = path.extname("./url.ht/path.js");
    
    console.log(newpath);

              6,child_process

             启动一个进程去执行一项任务。特别的fork,exec感觉更加的友好!

    var childProcess = require("child_process");
    
     var child = childProcess.spawn("ls"['-l']);
    child.stdout.on('data',function(data){
        console.log(data)
    })
    childProcess.exec("ls -lah",function(err,stdout,stderr){
        if (err) {
            throw err
        };
        console.log(stdout);
    // })
    childProcess.execFile("node util.js",function(err,stdout,stderr){
        if (err) {
            throw err
        };
        console.log(stdout)
    });
    childProcess.fork("querystring.js");

            7,os

           QQ截图20150525230649

                截图来自nodeAPI中文网。不知道什么时候能用到。只需要判断需求是系统级别的,那估计在这找就没差了!

            大致基础部分就这些!如果这些都搞定了,对node就有个基本的了解了!进阶的事情,后面再说!

  • 相关阅读:
    The Python Standard Library
    Python 中的round函数
    Python文件类型
    Python中import的用法
    Python Symbols 各种符号
    python 一行写多个语句
    免费SSL证书(https网站)申请,便宜SSL https证书申请
    元宇宙游戏Axie龙头axs分析
    OLE DB provider "SQLNCLI10" for linked server "x.x.x.x" returned message "No transaction is active.".
    The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "xxx.xxx.xxx.xxx" was unable to begin a distributed transaction.
  • 原文地址:https://www.cnblogs.com/huaziWEB/p/4529264.html
Copyright © 2020-2023  润新知