精华内容
下载资源
问答
  • Node.js Path 模块

    2021-06-17 07:00:00
    Node.js Path 模块Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块:var path = require("path")方法序号方法 & 描述1path.normalize(p)规范化路径,注意'..' 和 '.'。2...

    Node.js Path 模块

    Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块:

    var path = require("path")

    方法

    序号方法 & 描述

    1path.normalize(p)

    规范化路径,注意'..' 和 '.'。

    2path.join([path1][, path2][, ...])

    用于连接路径。该方法的主要用途在于,会正确使用当前系统的路径分隔符,Unix系统是"/",Windows系统是"\"。

    3path.resolve([from ...], to)

    将 to 参数解析为绝对路径,给定的路径的序列是从右往左被处理的,后面每个 path 被依次解析,直到构造完成一个绝对路径。 例如,给定的路径片段的序列为:/foo、/bar、baz,则调用 path.resolve('/foo', '/bar', 'baz') 会返回 /bar/baz。

    path.resolve('/foo/bar', './baz');

    // 返回: '/foo/bar/baz'

    path.resolve('/foo/bar', '/tmp/file/');

    // 返回: '/tmp/file'

    path.resolve('wwwroot', 'static_files/png/', '../gif/image.gif');

    // 如果当前工作目录为 /home/myself/node,

    // 则返回 '/home/myself/node/wwwroot/static_files/gif/image.gif'

    4path.isAbsolute(path)

    判断参数 path 是否是绝对路径。

    5path.relative(from, to)

    用于将绝对路径转为相对路径,返回从 from 到 to 的相对路径(基于当前工作目录)。

    在 Linux 上:

    path.relative('/data/orandea/test/aaa', '/data/orandea/impl/bbb');

    // 返回: '../../impl/bbb'

    在 Windows 上:

    path.relative('C:\\orandea\\test\\aaa', 'C:\\orandea\\impl\\bbb');

    // 返回: '..\\..\\impl\\bbb'

    6path.dirname(p)

    返回路径中代表文件夹的部分,同 Unix 的dirname 命令类似。

    7path.basename(p[, ext])

    返回路径中的最后一部分。同 Unix 命令 bashname 类似。

    8path.extname(p)

    返回路径中文件的后缀名,即路径中最后一个'.'之后的部分。如果一个路径中并不包含'.'或该路径只包含一个'.' 且这个'.'为路径的第一个字符,则此命令返回空字符串。

    9path.parse(pathString)

    返回路径字符串的对象。

    10path.format(pathObject)

    从对象中返回路径字符串,和 path.parse 相反。

    属性

    序号属性 & 描述

    1path.sep

    平台的文件路径分隔符,'\\' 或 '/'。

    2path.delimiter

    平台的分隔符, ; or ':'.

    3path.posix

    提供上述 path 的方法,不过总是以 posix 兼容的方式交互。

    4path.win32

    提供上述 path 的方法,不过总是以 win32 兼容的方式交互。

    实例

    创建 main.js 文件,代码如下所示:

    var path = require("path");

    // 格式化路径

    console.log('normalization : ' + path.normalize('/test/test1//2slashes/1slash/tab/..'));

    // 连接路径

    console.log('joint path : ' + path.join('/test', 'test1', '2slashes/1slash', 'tab', '..'));

    // 转换为绝对路径

    console.log('resolve : ' + path.resolve('main.js'));

    // 路径中文件的后缀名

    console.log('ext name : ' + path.extname('main.js'));

    代码执行结果如下:

    $ node main.js

    normalization : /test/test1/2slashes/1slash

    joint path : /test/test1/2slashes/1slash

    resolve : /web/com/1427176256_27423/main.js

    ext name : .js

    展开全文
  • path) { var pathStart = this.getEmptyPoint(0, 0, this.width, this.height), pathEnd = this.getEmptyPoint(Math.max(pathStart.x - pathLength, 0), Math.max(pathStart.y - pathLength), Math.min(pathStart.x ...

    JavaScript

    语言:

    JaveScriptBabelCoffeeScript

    确定

    'use strict';

    var _createClass = (function() {

    function defineProperties(target, props) {

    for (var i = 0; i < props.length; i++) {

    var descriptor = props[i];

    descriptor.enumerable = descriptor.enumerable || false;

    descriptor.configurable = true;

    if ('value' in descriptor) descriptor.writable = true;

    Object.defineProperty(target, descriptor.key, descriptor);

    }

    }

    return function(Constructor, protoProps, staticProps) {

    if (protoProps) defineProperties(Constructor.prototype, protoProps);

    if (staticProps) defineProperties(Constructor, staticProps);

    return Constructor;

    };

    })();

    function _classCallCheck(instance, Constructor) {

    if (!(instance instanceof Constructor)) {

    throw new TypeError('Cannot call a class as a function');

    }

    }

    var PathFinder = (function() {

    function PathFinder(data) {

    _classCallCheck(this, PathFinder);

    this.data = data;

    this.nodeList = [];

    for (var y = 0; y < data.length; y++) {

    this.nodeList[y] = [];

    for (var x = 0; x < this.data[0].length; x++) {

    this.nodeList[y][x] = {

    g: 0,

    h: 0,

    f: 0,

    open: false,

    checked: false,

    parent: null,

    value: this.data[y][x],

    x: x,

    y: y

    };

    }

    }

    }

    _createClass(PathFinder, [{

    key: 'getPath',

    value: function getPath(start, end) {

    // reset pathfinder data

    var openList = [],

    closedList = [],

    startNode = {},

    nodeList = [];

    startNode.parent = null;

    startNode.g = 0;

    startNode.h = this.getHeuristic(startNode, end);

    startNode.f = startNode.g + startNode.h;

    startNode.open = true;

    startNode.x = start.x;

    startNode.y = start.y;

    openList.push(startNode);

    var i = 0,

    neighbors = [],

    neighbor = null;

    while (openList.length > 0) {

    var curNode = openList.pop();

    if (curNode.x === end.x && curNode.y === end.y) {

    // build path

    var cur = curNode,

    path = [];

    while (cur.parent) {

    path.push(cur);

    cur = cur.parent;

    }

    path.push(cur);

    return path;

    } else {

    curNode.checked = true;

    curNode.open = false;

    neighbors = this.getNeighbors(curNode);

    for (i = 0; i < neighbors.length; i++) {

    neighbor = neighbors[i];

    if (neighbor.checked || neighbor.value > 0) {

    continue;

    }

    var gScore = curNode.g + 1,

    betterGScore = false;

    if (!neighbor.open) {

    betterGScore = true;

    neighbor.h = this.getHeuristic(neighbor, end);

    neighbor.open = true;

    openList.push(neighbor);

    openList.sort(this.sortByF);

    } else if (gScore < neighbor.g) {

    betterGScore = true;

    }

    if (betterGScore) {

    neighbor.parent = curNode;

    neighbor.g = gScore;

    neighbor.f = neighbor.g + neighbor.h;

    openList.sort(this.sortByF);

    }

    }

    }

    }

    }

    }, {

    key: 'getHeuristic',

    value: function getHeuristic(node1, node2) {

    // This is the Manhattan distance

    var d1 = Math.abs(node2.x - node1.x),

    d2 = Math.abs(node2.y - node1.y);

    return d1 + d2;

    }

    }, {

    key: 'getNeighbors',

    value: function getNeighbors(node) {

    var ret = [],

    x = node.y,

    y = node.x;

    if (this.nodeList[x - 1] && this.nodeList[x - 1][y]) {

    ret.push(this.nodeList[x - 1][y]);

    }

    if (this.nodeList[x + 1] && this.nodeList[x + 1][y]) {

    ret.push(this.nodeList[x + 1][y]);

    }

    if (this.nodeList[x][y - 1]) {

    ret.push(this.nodeList[x][y - 1]);

    }

    if (this.nodeList[x][y + 1]) {

    ret.push(this.nodeList[x][y + 1]);

    }

    // check angles

    if (x - 1 >= 0 && y - 1 >= 0) {

    if (this.nodeList[x - 1][y - 1]) {

    ret.push(this.nodeList[x - 1][y - 1]);

    }

    }

    if (x + 1 < this.nodeList.length && y + 1 <= this.nodeList[x].length) {

    if (this.nodeList[x + 1][y + 1]) {

    ret.push(this.nodeList[x + 1][y + 1]);

    }

    }

    return ret;

    }

    }, {

    key: 'sortByF',

    value: function sortByF(a, b) {

    var aa = a.f,

    bb = b.f;

    return aa < bb ? -1 : aa > bb ? 1 : 0;

    }

    }]);

    return PathFinder;

    })();

    /*************

    ******* Demo.

    *************/

    //initialize the grid of points

    var Pattern = (function() {

    function Pattern(width, height, gap) {

    _classCallCheck(this, Pattern);

    this.points = [];

    this.width = width;

    this.height = height;

    this.gap = gap;

    for (var y = 0; y < this.height; y++) {

    this.points[y] = [];

    for (var x = 0; x < this.width; x++) {

    this.points[y][x] = 0;

    // block off the very outside so we don't have half lines when drawing.

    if (y === 0 || y === this.height - 1 || x === 0 || x === this.width - 1) {

    this.points[y][x] = 1;

    }

    }

    }

    }

    _createClass(Pattern, [{

    key: 'getEmptyPoint',

    value: function getEmptyPoint(minWidth, minHeight, maxWidth, maxHeight) {

    var x = Math.floor(Math.random() * (maxWidth - minWidth)) + minWidth,

    y = Math.floor(Math.random() * (maxHeight - minHeight)) + minHeight;

    while (this.points[x][y] === 1) {

    x = Math.floor(Math.random() * (maxWidth - minWidth)) + minWidth;

    y = Math.floor(Math.random() * (maxHeight - minHeight)) + minHeight;

    }

    return {

    x: x,

    y: y

    };

    }

    }, {

    key: 'createPattern',

    value: function createPattern() {

    var pathFinder = new PathFinder(this.points),

    pathLength = 20,

    path = false,

    canvas = document.getElementById('canvas');

    while (!path) {

    var pathStart = this.getEmptyPoint(0, 0, this.width, this.height),

    pathEnd = this.getEmptyPoint(Math.max(pathStart.x - pathLength, 0), Math.max(pathStart.y - pathLength), Math.min(pathStart.x + pathLength, this.width), Math.min(pathStart.y + pathLength, this.height));

    path = pathFinder.getPath(pathStart, pathEnd);

    }

    var svgPath = document.getElementById('path'),

    coords = 'M ' + path[0].x * this.gap + ', ' + path[0].x * this.gap;

    var _iteratorNormalCompletion = true;

    var _didIteratorError = false;

    var _iteratorError = undefined;

    try {

    for (var _iterator = path[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {

    var point = _step.value;

    coords += 'L ' + point.x * this.gap + ', ' + point.y * this.gap;

    }

    } catch (err) {

    _didIteratorError = true;

    _iteratorError = err;

    } finally {

    try {

    if (!_iteratorNormalCompletion && _iterator['return']) {

    _iterator['return']();

    }

    } finally {

    if (_didIteratorError) {

    throw _iteratorError;

    }

    }

    }

    ;

    svgPath.setAttribute('d', coords);

    svgPath.style.strokeDasharray = svgPath.getTotalLength();

    svgPath.style.strokeDashoffset = svgPath.getTotalLength();

    }

    }]);

    return Pattern;

    })();

    new Pattern(62, 62, 5).createPattern();

    展开全文
  • Python 提取js中的url

    千次阅读 2021-11-19 16:22:11
    需要输入一个参数,/jsjs所在的路径 """ import os,sys import re # 定义查找方法 def Find(string): # 查找匹配正则表达式的字符串 url = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|...
    """
    作用:提取js中的url,http开头
    用法:python index.py /js
    需要输入一个参数,/js是js所在的路径
    """
    import os, sys
    import re
    
    
    # 定义查找方法
    def Find(string):
        #  查找匹配正则表达式的字符串
        url = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', string)
        return url
    # 读取js方法
    def read_js(path):
        print("当前文件是:"+path)
        da = open(path, 'rb').read()
        # print(da)
        try:
            # print(Find(str(da, encoding="utf-8")))
            if len(Find(str(da, encoding="utf-8"))) > 0:
                print(path+":", Find(str(da, encoding="utf-8")))
                return Find(str(da, encoding="utf-8"))
        except UnicodeDecodeError:
            # print(Find(str(da, encoding="gbk")))
            if len(Find(str(da, encoding="gbk"))) > 0:
                print(path + ":", Find(str(da, encoding="gbk")))
                return Find(str(da, encoding="gbk"))
    
        except:
            return "请尝试其他编码格式"
    # 文件递归查询方法
    def read_file(path):
        # print(os.listdir(path))
        allarr = []
        for i in os.listdir(path):
            fi_d = os.path.join(path, i)
            if os.path.isdir(fi_d):
                read_file(fi_d)
            else:
                if os.path.splitext(i)[1] == '.js':
                    baby = read_js(os.path.join(fi_d))
                    if not baby is None and len(baby) > 0:
                        allarr.append(baby)
        
        print(sum(allarr, []))
        exit()
    
    if __name__ == '__main__':
        # 接收路径
        path = sys.argv[1]
    
        read_file(path)
    
    展开全文
  • 前几天用到了这个功能,已知对象和对象路径(字符串格式 ,如:"a.b.c"),需要取对象的值。 网上寻了一段大神的代码,一层一层... getValueByObjPath (obj, path) { const paths = path.split('.'); let res = obj;

    前几天用到了这个功能,已知对象和对象路径(字符串格式 ,如:"a.b.c"),需要取对象的值。

    网上寻了一段大神的代码,一层一层查对象的值:

    原文地址:https://blog.csdn.net/hggl_bera/article/details/113811740

        // 根据对象路径获取对象值
        getValueByObjPath (obj, path) {
          const paths = path.split('.');
          let res = obj;
          let tempPath;
          // 此处本来可以写成 while (tempPath = paths.shift()) ,但是eslint 报错:不能在判断的地方赋值
          while ((function () { tempPath = paths.shift(); return tempPath; })()) {
            res = res[tempPath];
          }
          return res;
        }

    效果挺好,可以实现需求,用起来也挺不错的~

    然而……今天,同事看我代码的时候说,lodash有方法( _.get(obj, path) )可以直接用-_-! 瞬间觉得还是要多读书,活到老学到老呀,怪我对lodash不熟悉~

    lodash 引入自己看哈,方法也有,我把lodash 的文档贴出来,慢慢看~

    Gets the value at path of object. If the resolved value is undefined, the defaultValue is returned in its place.
    
    _.get(object, path, [defaultValue])

    lodash官方文档: https://lodash.com/docs/4.17.15#get

    记录一下,以后实现什么功能需要先查一下资料,可别重复造轮子了~

     

    展开全文
  • "/home", component: home },{ path: "/about", component: about },// 重定向 { path: '/', redirect: '/home' } routes是路由器的集合,路由是由path和component组成,component很容易理解就是导出的组件,但是这...
  • fabric.js 画圆环,圆弧,弧形区域

    千次阅读 2021-09-30 10:15:14
    Document 画 儿子 addPath 参数说明 angle1, angle2, x, y, r1, r2 分别对应 偏转角度,弧形区域的角度,x,y是圆心,r1小圆半径,r2大圆半径。 fabric.js我是引用的本地的文件,记得修改路径。 效果图
  • path简介path是一个和路径有关的模块,用于处理文件路径和目录路径,可以通过如下方式引入使用:const path = require('path')下面将重点介绍一些path常用的方法:normalize join resolvebasename extname ...
  • uipath调用js脚本

    2021-07-27 11:08:41
    uipath调用js脚本 浏览器打开web网站,指定到要操作的页面 调用插入js脚本 语法如下 “function(element,text){ document.getElementById(text).value=‘joker’ }” 基于id属性的对象捕获,用getElementByid,其它...
  • Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,nodejs允许javascript代码运行在服务端1. nodejs不是一门新的编程语言,nodejs是在服务端运行javascript的运行环境2. 运行环境:写得程序想要运行必须要...
  • 在vite.config.js中配置 import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' const path = require('path') ... "@": path.resolve(__dirname, "./src/assets/js"), }
  • path模块是nodejs中用于处理文件/目录路径的一个内置模块 const path = require('path'); path模块的默认操作会因nodejs应用程序运行所在的操作系统而异;具体来说,当在windows操作系统上运行时,path模块会假定...
  • vue中ERROR ReferenceError: path is not defined

    千次阅读 2021-05-23 21:07:49
    这个错误是缺少path引入,要在vue.config.js中引入path
  • 介绍一个小技巧获取node.js项目根目录,这个技巧非常实用。假设我们的js文件写在server目录中,但是我们的资源文件存储在app/img目录中。如下图,我们需要在server/index.js文件中使用fs读取app/img/favicon.ico文件...
  • JS核心语法 和 WebAPI 组成 2. 为什么 JavaScript 可以在浏览器中被执行 不同的浏览器使用不同的 JavaScript 解析引擎: Chrome 浏览器 => V8 Firefox 浏览器 => OdinMonkey(奥丁猴) Safri 浏览器 =>...
  • //获取uuid文件名称(去掉扩展名) function getFileName(data) { return data.substring(0,data.indexOf(".")); }
  • vue.js中怎么打开新页面?下面本篇文章给大家介绍一下。...1、使用js跳转打开新的页面let routeUrl = this.$router.resolve({path: "/path",//新页面地址query: { id: localStorage.id }//携带的参数});window.open(...
  • function getPath (data, id, cb) { var temppath = []; try { getNodePath(data); } catch (e) { console.log(e, temppath) } function getNodePath (node) { temppath.push(node.id);...
  • vue.js如何带参数跳转?下面本篇文章给大家简单介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家...通过router-link进行跳转:to="{path: 'yourPath',params: {key: 'value', // orderNum : this...
  • path模块操作相当于是字符串操作,不会去判断路径是否真实存在 basename(获取一段路径中最后一个/后面内容,[可选参数:匹配成功去掉内容]) let path = require("path"); let obj = path.basename("/index.html"); ...
  • Node.js path 模块提供了一些用于处理文件路径的小工具,我们可以通过以下方式引入该模块: var path = require("path") 方法 1、path.join([path1][, path2][, ...]): const path = require("path"); ...
  • vue路由详解

    千次阅读 2020-12-23 03:55:16
    index.js { path:'/list/:id/name/:name', name:'list', component:List } list.vue {{title}}{{name}} 传递不同参数 显示不同数据 项目应用:详情页 watch 响应路由参数的变化 监听路由的变化 watch:{ '$route'(to,...
  • SpriteJS 是跨平台的高性能图形动画系统,通过封装好的简单方法实现在 web、node、桌面应用和小程序上的图形绘制和各种流畅的动画效果。由 360 公司的前端团队 360 奇舞团开发以及维护。 最新的 SpriteJS Next&...
  • path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求 path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串 path.basename() 方法,用来...
  • 前言前段时间研究 SVG 压缩优化,发现SVG预定义的 rect、circle、ellipse、line、polyline、polygon 六种基本形状可通过path路径转换实现,这样可以在一定程度上减少代码量。不仅如此,我们常用的 SVG Path 动画...
  • Node.jspath.resolve和path.join的区别 path.join和path.resolve函数都允许传入多个字符串,将参数拼接后返回一个路径字符串。 但是在使用他们时,要考虑到其中的区别。 一、path.resolve()方法 我们可以将path....
  • web自动化中手写定位表达式耗费时间较长,如果使用chropath插件来协助的话就事半功倍了 插件下载链接 : ...提取码:adv5 1、在Chrome浏览器地址栏中输入:chrome://extensions/ 2、页面右上角的开发者模式打开 ...
  • 1、引用 const path = require('path'); 2、常用API path.basename( path[,ext] )返回基本文件名 path.basename('../node/01.html') //01.html ...在Node.js中, __dirname 总是指向被执行 js 文件的绝对路径. fun
  • vue-router的base和vue.config.js的publicPath区别和联系   vue-router的base官方文档解释: base 类型: string 默认值: "/" 应用的基路径。例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/...
  • 路径path模块 相对路径问题 在读取文件时,写相对路径容易出现以下问题: 假设有如下两个文件,它们所处的目录及文件名如下所示: file/js/fs.js file/js/text.txt fs.js代码的作用是读出text.txt中的内容,并显示...
  • node.js核心模块 path模块 简介 官网文档地址:http://nodejs.cn/api/path.html#path_path 它是也是node中的核心模块,作用是用来处理路径问题:拼接,分析,取后缀名等等。 使用步骤 引入模块。 const path = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 471,002
精华内容 188,400
关键字:

jspath

友情链接: bagcmnfiouration.rar