美文网首页
(五)node常用的api

(五)node常用的api

作者: 前端来入坑 | 来源:发表于2019-10-08 20:24 被阅读0次
    一、path:提供用于处理文件路径和目录路径的实用工具

    引入路径模块const path = require('path');

    • path.parse(path) 这是一个常用的方法,将路径解析成json格式
      比如:
    path.parse('/home/user/dir/file.txt');
    // 返回:
    // { root: '/',
    //   dir: '/home/user/dir',
    //   base: 'file.txt',
    //   ext: '.txt',
    //   name: 'file' }
    
    • 与以上相反的操作就是path.format(pathObject),将json组合成一个path

    二、fs:文件系统

    引入文件系统:const fs = require('fs');所有的方法都有异步和同步的形式。异步最后一个参数都是一个回调函数。 回调函数的第一个参数都是err,代表方法操作是否成功。 如果操作成功完成,则第一个参数会是 null 或 undefined。

    • fs.readFile:读文件
      如果读取文件成功,err为null
    fs.readFile('./hello.js',(err,data) => {
        if(err) throw err;
        console.log(data);
    });
    

    指定字符编码:fs.readFile('/etc/passwd', 'utf8', callback);

    写入文件:fs.write(fd, string[, position[, encoding]], callback)
    删除文件:fs.unlink(path, (err) => { ... })
    创建文件夹:fs.mkdir(path[, options], (err) => { ... })
    文件夹重命名:fs.rename(oldPath, newPath, (err) => { ... })


    三、querystring模块提供用于解析和格式化 URL 查询字符串的实用工具

    引入const querystring = require('querystring');
    -- sep <string> 用于在查询字符串中分隔键值对的子字符串。默认值: '&'
    -- eq <string> 用于在查询字符串中分隔键和值的子字符串。默认值: '='

    • querystring.parse(str[, sep[, eq[, options]]])
      举个栗子:foo=bar&abc=xyz&abc=123解析之后
    querystring.parse("foo=bar&abc=xyz&abc=123");
    ...解析后...
    
    {
      foo: 'bar',
      abc: ['xyz', '123']
    }
    
    ...也可以这样写...
    querystring.parse("foo=bar&abc=xyz&abc=123", "&", "=");
    
    • querystring.stringify(obj[, sep[, eq[, options]]])就是相反的操作
    querystring.stringify({
      foo: 'bar',
      abc: ['xyz', '123']
    });
    ...解析后...
    
    "foo=bar&abc=xyz&abc=123"
    
    ...也可以这样写...
    querystring.stringify({
      foo: 'bar',
      abc: ['xyz', '123']
    }, "&", "=");
    

    四、url 没有红色字体代表在最新版v12.11.1node中不推荐使用
    • url.format(URL[, options])虽然 URL 对象的 toString() 方法和 href 属性都可以返回 URL 的序列化的字符串。 然而,两者都不可以被自定义。 而 url.format(URL[, options]) 方法允许输出的基本自定义

    @params 参数
    -- auth <boolean> 如果序列化的 URL 字符串应该包含用户名和密码则为 true,否则为 false默认值: true
    -- fragment <boolean> 如果序列化的 URL 字符串应该包含分段则为 true,否则为 false默认值: true
    -- search <boolean> 如果序列化的 URL 字符串应该包含搜索查询则为 true,否则为 false默认值: true
    -- unicode <boolean> 如果出现在 URL 字符串主机元素里的 Unicode 字符应该被直接编码而不是使用 Punycode 编码则为 true默认值: false

    const myURL = new URL('https://a:b@測試?abc#foo');
    
    console.log(myURL.href);
    // 打印 https://a:b@xn--g6w251d/?abc#foo
    
    console.log(myURL.toString());
    // 打印 https://a:b@xn--g6w251d/?abc#foo
    
    console.log(url.format(myURL, { fragment: false, unicode: true, auth: false }));
    // 打印 'https://測試/?abc'
    
    • url.resolve(from, to)
      from: 解析时对应的基本的url
      to:要解析的超链接url
    const url = require('url');
    url.resolve('/one/two/three', 'four');         // '/one/two/four'
    url.resolve('http://example.com/', '/one');    // 'http://example.com/one'
    url.resolve('http://example.com/one', '/two'); // 'http://example.com/two'
    
    • url.path(URL[, options])用来解析一个url地址,将地址解析为一个对象,v12.11.1推荐使用以下方法
    const myURL = new URL('https://example.org/foo#bar');
    console.log(myURL.hash);  // 打印 #bar
    myURL.host
    myURL.hostname
    myURL.href
    myURL.originm
    myURL.password
    myURL.pathname
    myURL.port
    myURL.protocol
    myURL.search
    myURL.username
    

    具体参数可在node文档查找

    相关文章

      网友评论

          本文标题:(五)node常用的api

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