node

VSCode 拓展插件推荐

本小妞迷上赌 提交于 2019-12-26 01:42:22
VSCode 拓展插件推荐 插件列表 Auto Close Tag 自动闭合HTML标签 Auto Rename Tag 修改HTML标签时,自动修改匹配的标签 Bookmarks 添加行书签 Can I Use HTML5、CSS3、SVG的浏览器兼容性检查 Code Runner 运行选中代码段(支持大量语言,包括Node) CodeBing 在VSCode中弹出浏览器并搜索,可编辑搜索引擎 Color Highlight 颜色值在代码中高亮显示 Color Picker 拾色器 Document This 注释文档生成 EditorConfig for VS Code EditorConfig 插件 Emoji 在代码中输入emoji ESLint ESLint插件,高亮提示 File Peek 根据路径字符串,快速定位到文件 Font-awesome codes for html FontAwesome提示代码段 ftp-sync 同步文件到ftp Git Blame 在状态栏显示当前行的Git信息 Git History(git log) 查看git log GitLens 显示文件最近的commit和作者,显示当前行commit信息 Guides 高亮缩进基准线 Gulp Snippets Gulp代码段 HTML CSS Class Completion CSS

mecab 只获短语中的取名词

余生长醉 提交于 2019-12-26 00:36:50
#!/usr/bin/env python # -*- coding:utf-8 -*- #@Time : 2019/12/24 13:57 #@Author: 李现伟 #@File : TinyTokenizerTest.py import os import MeCab from tiny_tokenizer import WordTokenizer os . environ [ 'MECAB_PATH' ] = 'C:\\Program Files (x86)\\MeCab\\bin\\libmecab.dll' os . environ [ 'MECAB_CHARSET' ] = 'utf-8' sentence = '僕は李現偉と申します。日本語を勉強しています。' tokenizer1 = WordTokenizer ( 'MeCab' ) str_mecab_arry = tokenizer1 . tokenize ( sentence ) str_mecab = ' ' . join ( str ( i ) for i in str_mecab_arry ) # print(str_mecab) # tokenizer = WordTokenizer(tokenizer="mecab", with_postag=False) # print(tokenizer

TypeError: db.collection is not a function

主宰稳场 提交于 2019-12-26 00:11:36
出现以下错误时: G:\nodejs\login\node_modules\mongodb\lib\mongo_client.js:797 throw err; ^ TypeError: db.collection is not a function at findRestaurants (G:\nodejs\login\app.js:22:19) at G:\nodejs\login\app.js:35:3 at args.push (G:\nodejs\login\node_modules\mongodb\lib\utils.js:404:72) at G:\nodejs\login\node_modules\mongodb\lib\mongo_client.js:255:5 at connectCallback (G:\nodejs\login\node_modules\mongodb\lib\mongo_client.js:933:5) at G:\nodejs\login\node_modules\mongodb\lib\mongo_client.js:794:11 at _combinedTickCallback (internal/process/next_tick.js:131:7) at process._tickCallback (internal

leetcode 211. Add and Search Word - Data structure design

情到浓时终转凉″ 提交于 2019-12-25 23:54:53
模糊匹配 function Node(value) { this.value = value this.passCount = 0; this.endCount = 0; this.children = {} } class WordDictionary { constructor() { this.root = new Node(null) } addWord(word) { var node = this.root; for (var c of word) { if (!node.children[c]) { node.children[c] = new Node(c) } node = node.children[c] node.passCount++ } node.endCount++ } search(word) { if (word === '') { return true } return searchRecursively(this.root, word, 0) } } function searchRecursively(cur, word, index) { if (index == word.length) { return !!cur.endCount; } var c = word.charAt(index); if (c == '.') { for

NodeJs生成SVG图形验证码

旧巷老猫 提交于 2019-12-25 15:40:44
背景:短信接口有调用限制,如果受到恶意攻击,很容易就爆掉,所以需要一系列验证机制,后端采用签名加密的方式,而前端要做人机识别,有两个要求: 1)不能使用文本式的验证码,很简单就能拿到 2)所有验证逻辑要在服务端进行,不然很容易被绕过 解决方法:使用svg-captcha插件在node.js中生成svg格式的验证码。 1、安装 npm install --save svg-captcha 2、使用方法 var svgCaptcha = require('svg-captcha'); var data = svgCaptcha.create({ //options }) console.log(data) //{data: '<svg>......</svg>', text: 'fdsafasdf'} 在express中使用 var svgCaptcha = require('svg-captcha'); var router = require('express').Router(); router.get('/get-img-verify', function (req, res) { console.log(req.query); var option = req.query; // 验证码,有两个属性,text是字符,data是svg代码 var code =

org.w3c.dom(java dom)解析XML文档

你说的曾经没有我的故事 提交于 2019-12-25 14:10:12
位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API: 1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 2.解析器:DocumentBuilder 创建方法:通过解析器工厂类来获得 DocumentBuilder db = dbf.newDocumentBuilder(); 3.文档树模型Document 创建方法:a.通过xml文档 Document doc = db.parse("bean.xml"); b.将需要解析的xml文档转化为输入流 InputStream is = new FileInputStream("bean.xml"); Document doc = db.parse(is); Document对象代表了一个XML文档的模型树,所有的其他Node都以一定的顺序包含在Document对象之内,排列成一个树状结构,以后对XML文档的所有操作都与解析器无关, 直接在这个Document对象上进行操作即可; 包含的方法: 4.节点列表类NodeList

Java集合类--HashMap

烂漫一生 提交于 2019-12-25 14:07:36
一、HashMap基本源码实现 1、HashMap基本结构 HashMap继承AbstractMap抽象类,AbstractMap实现Map接口。 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { private static final long serialVersionUID = 362498820763181265L; .... } public abstract class AbstractMap<K,V> implements Map<K,V> { protected AbstractMap() { } ... } 二、HashMap的基本数据结构 jdk1.8之前,HashMap是由“数组+链表”的结构组成,jdk1.8之后,HashMap得到很大的改善;数据结构也发生了改变:“数组+链表+红黑树”;当链表节点大于8时,会转换为红黑树;否则仍然以链表结构。 头节点指的是table表上索引位置的节点,也就是链表的头节点 根节点(root节点)指的是红黑树最上面的那个节点,也就是没有父节点的节点 红黑树的根节点不一定是索引位置的头节点 转为红黑树节点后,链表的结构还存在,通过next属性维持

Baozi Leetcode solution 133: Clone Graph

一笑奈何 提交于 2019-12-25 14:02:19
Problem Statement Given a reference of a node in a connected undirected graph, return a deep copy (clone) of the graph. Each node in the graph contains a val ( int ) and a list ( List[Node] ) of its neighbors. Example: Input: {"$id":"1","neighbors":[{"$id":"2","neighbors":[{"$ref":"1"},{"$id":"3","neighbors":[{"$ref":"2"},{"$id":"4","neighbors":[{"$ref":"3"},{"$ref":"1"}],"val":4}],"val":3}],"val":2},{"$ref":"4"}],"val":1} Explanation: Node 1's value is 1, and it has two neighbors: Node 2 and 4. Node 2's value is 2, and it has two neighbors: Node 1 and 3. Node 3's value is 3, and it has two

数据结构和算法之二叉树

可紊 提交于 2019-12-25 07:09:26
一、为什么需要树这种数据结构 是因为之前的数组和链表两种存储结构对增删改查都各有利弊,而且差异明显。所以树这种结构就是增删改查效率差异不是很明显,增删改查所耗费时间都比较均衡的一种数据结构。 1、数组存储方式 1.1、优点 通过下标方式访问元素,速度快 。对于有序数组,还可以使用 二分查找 来提高检索速度。 1.2、缺点 若检索具体某个值,或 插入值(按一定顺序),会整体移动 。效率较低。 2、链表存储方式 2.1、优点 在一定程度上对数组存储方式进行了优化(比如插入一个节点,只需要将插入节点连接到链表中即可,删除效率也很好) 2.2、缺点 在进行检索时,效率仍然很低,比如检索某个值,需要从头节点开始遍历进行判断。 3、树存储方式 3.1、说明 可以利用 二叉排序树(Binary Sort Tree) ,既可以保证数据的检索速度,同时也可以保证数据的插入、删除、修改的速度。 二叉排序树就是要求任何 左侧 子节点的值都大于当前父节点, 右侧 子节点的值都小于当前父节点。 3.2、案例 3.2.1、假设有一颗二叉排序树【8 4 11 2 6 10 13】,如下图所示 二叉排序树, 左侧 子节点的值都大于当前父节点, 右侧 子节点的值都小于当前父节点。 3.2.2、如下需求 3.2.2.1、查找10 具体步骤: 总共需要两次查找 1、判断10与根节点大小,大于根节点,在右侧查找 2

Node和PHP执行区别和优势

China☆狼群 提交于 2019-12-25 06:55:20
Node和PHP执行区别和优势 最近在了解PHP和Node,虽然了解了Node和PHP的基本区别,比如作为一个前端,当然喜欢用js去做所有的事情,可以让前端进入到后端的工作,不至于前后端分离的状态下分工不明,尤其近几年 全栈工程师 这个概念这么火爆,会做事的人不少,但是真正驾轻就熟的人不是那么充裕,下面单就Node的单线程和PHP的多线程做一下笔记。   1. php 在处理并发的时候是通过多线程处理,这样会导致硬件成本的增加,特别是一些频繁I/0的项目,很多的线程被阻塞,cpu得不到充分的利用。   2. node :node的核心理念是单线程,通过事件和回调实现并发。既然是单线程,那硬件自然比较低。   那单线程怎么实现并发呢?我认为正是这种实现的方法让大家耳目一新,所以才会让node如此,   并发实现原理:比如一百个请求要做一百件事,当第一个请求执行到i/o的时候立马挂起,不等待i/o成功,直接执行下一个事件,直到i/o完毕,这是触发回调事件,回调事件的优先级会比普通事件的优先级高,就是这样通过异步来实现单线程的并发处理。保证了线程永远有事做,不会等待。 来源: CSDN 作者: JasonJaiy 链接: https://blog.csdn.net/weixin_40652759/article/details/103686580