node

leetcode133

我是研究僧i 提交于 2019-12-11 14:11:51
1 class Solution: 2 def cloneGraph(self, node: 'Node') -> 'Node': 3 if not node: 4 return None 5 queue = [node] 6 dup_node = Node(node.val,[]) 7 fakequeue = [dup_node] 8 visited = [] 9 d = {} 10 d[node.val] = dup_node 11 while queue: 12 node = queue.pop(0) 13 newnode = fakequeue.pop(0) 14 if node.val in visited: 15 continue 16 visited.append(node.val) 17 for i in node.neighbors: 18 if not i.val in d: 19 j = Node(i.val,[]) 20 d[i.val] = j 21 else: 22 j = d[i.val] 23 newnode.neighbors.append(j) 24 queue.append(i) 25 fakequeue.append(j) 26 return dup_node 算法思路:BFS 参考: https://leetcode.com

node学习笔记(2)mongoDB

时光毁灭记忆、已成空白 提交于 2019-12-11 13:49:44
node学习笔记(2) 文章目录 node学习笔记(2) 准备开始 启程helloworld app.use([path,] callback [, callback...]) app.use app.get app.post区别 中间件类别 路由中间件 路由 res扩展函数 模板渲染 使用art-template模板引擎 内置中间件(处理静态资源) 第三方中间件(post请求体的获取) 服务端处理错误和404页面找不到 nodemon MongoDB 条件查询 分页 排序 模糊匹配 聚合函数 常见错误 Error: ENOENT: no such file or directory, uv_cwd错误 配置https 扩展知识(使用mongodb实现附近的人) 查找附近的人 离我最近 数据库知识 数据库索引 索引作用 索引分类 不走索引 数据库聚合 准备开始 启程helloworld 安装 npm i express -S 1:引入express第三方对象 2:构建一个服务器对象 3:开启服务器监听端口 4:处理响应 在express中,保留了原生http的相关属性和函数 app.use([path,] callback [, callback…]) 将指定的一个或多个中间件函数装入指定的路径:当请求的路径与参数中路径匹配时,将执行中间件函数。 app.use(fn

JS---DOM---课程中涉及到的common.js

北城余情 提交于 2019-12-11 13:10:26
//格式化日期的代码 //获取指定标签对象 //获取元素的文本内容 //获取元素的文本内容 //获取父级元素中的第一个子元素 //获取父级元素中的最后一个子元素 //获取某个元素的前一个兄弟元素 //获取某个元素的后一个兄弟元素 //获取某个元素的所有兄弟元素 //返回当前浏览器是什么类型的浏览器 //为任意一个元素绑定事件:元素,事件类型,事件处理函数 //为任意的一个元素解绑某个事件:元素,事件类型,事件处理函数 /** * 格式化日期 * @param dt 日期对象 * @returns {string} 返回值是格式化的字符串日期 */ function getDates(dt) { var str = "";//存储时间的字符串 //获取年 var year = dt.getFullYear(); //获取月 var month = dt.getMonth() + 1; //获取日 var day = dt.getDate(); //获取小时 var hour = dt.getHours(); //获取分钟 var min = dt.getMinutes(); //获取秒 var sec = dt.getSeconds(); month = month < 10 ? "0" + month : month; day = day < 10 ? "0" + day :

Node 中 CommonJS 规范

家住魔仙堡 提交于 2019-12-11 12:41:43
CommonJS 是一个很大的规范 Node 和浏览器只是借用了它的一部分精华 先来Node环境运行的结果: # a.js console.log('我是a.js') 无引用的情况: # b.js const lib = require('./a') console.log('我是b.js') # 运行b.js 我是a.js 我是b.js 有引用的情况: # b.js const lib = require('./a') console.log('我是b.js',lib) # 运行b.js 我是a.js 我是b.js {} //得到一个空对象 有 exports 情况,通过 exports 定义模块的输出: # a.js exports.hello='world!' // 这里可以挂载合法的数据类型,对象、字符串、函数等 console.log('我是a.js') # b.js const lib = require('./a') console.log('我是b.js',lib) # 运行b.js 我是a.js 我是b.js { hello: 'world!' } //得到一个含有 key 的对象 `key` 就是挂载到 `exports` 上的属性名 b.js require 的引用和 a.js exports 的引用是不是同一个引用? # a.js exports.hello

ECMAScript 6 入门——前言/简介

倾然丶 夕夏残阳落幕 提交于 2019-12-11 11:49:05
简介(看看就好,搭配括号理解就行) ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 因此,ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了ES2015、ES2016、ES2017等等,而ES2015则是正式名称,特指该年发布的正式版本的语言标准。本书中提到ES6的地方,一般是指ES2015标准,但有时也是泛指“下一代 JavaScript 语言”。 ECMAScript 和 JavaScript的关系是 前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 JScript 和 ActionScript)。日常场合,这两个词是可以互换的。 各浏览器ES6支持程度 https://kangax.github.io/compat-table/es6/ Babel 转码器(如.jsx/.vue转码) Babel 是一个广泛使用的ES6转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。这意味着,你可以用ES6的方式编写程序,又不用担心现有环境是否支持。下面是一个例子。 配置文件.babelrc Babel 的配置文件是

node环境变量和安装cnpm(淘宝镜像)

纵饮孤独 提交于 2019-12-11 10:57:09
node环境变量和安装cnpm(淘宝镜像) 安装完成node之后: 到node安装目录下创建二个文件夹,分别是:【node_global】和【node_cache】 例如我的node安装目录路径是在D:\Program Files\nodejs, 创建完两个空文件夹之后我们用管理员打开cmd命令窗口,输入 设置npm全局路径: npm config set prefix "D:\Program Files\nodejs\node_global" npm config set cache "D:\Program Files\nodejs\node_cache“ 环境变量:此电脑右键点属性 用户变量和系统变量的path都添加二句: D:\Program Files\nodejs\node_global D:\Program Files\nodejs 安装cnpm: npm install -g cnpm --registry=https://registry.npm.taobao.org 设置cnpm全局路径 cnpm config set prefix ”D:\Program Files\nodejs\node_global” cnpm config set cache ”D:\Program Files\nodejs\node_cache“ 卸载 npm uninstall “名称

RabbitMQ 集群部署

对着背影说爱祢 提交于 2019-12-11 10:15:02
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> RabbitMQ 元数据 RabbitMQ 元数据类型 RabbitMQ 会始终记录以下类型的内部元数据: * 队列元数据 --- 队列名称和它们的属性(是否可持久化,是否自动删除) * 交换器元数据 --- 交换器名称,类型,属性(可持久化等) * 绑定元数据 --- 一张简单的表格展示如何将消息路由到队列 * vhost 元数据 --- 为 vhost 内的队列,交换器和绑定提供命名空间和安全属性 * 用户和用户权限信息元数据 单节点元数据存储 RabbitMQ 会将所有的这些信息存储在内存中,同步将标记为可持久化的队列和交换器存储到硬盘上,从而确保队列和交换器在重启服务 的时候可以重建 集群环境元存储 集群环境引入了新的元数据:集群节点位置,以及节点与已记录的其他类型元数据的关系,集群也提供了选择,将元数据存储到磁盘(独立节 点的默认配置)或者 RAM 中 集群中运行的任何一个节点,都拥有集群的全部元数据 集群中声明队列,交换器,绑定的时候,这些操作需要等到所有集群节点都成功提交元数据变更,才会返回 内存节点和磁盘节点 RabbitMQ 中的节点按存储方式分为两类: * 内存节点: 所有的元数据定义仅存储在内存中(不包含消息内容,消息索引,队列索引,其他节点状态),在频繁变更队列,交换器,绑定 的情况下

kubernetes(八)问题排查

只谈情不闲聊 提交于 2019-12-11 09:16:26
1.Master master上的组件是运行k8s的不可缺少的一部分,共同管理k8s集群 1)如果apiserver出问题 apiserver是K8s集群最重要的组件,提供了k8s各类资源对象(pod,RC,Service等)的增删改查及watch等HTTP Rest接口,是 整个系统的数据总线和数据中心。所有的命令都需要和apiserver进行交互,是k8s的"大脑",api-server不可用会导致整个K8s集 群不可用 2)如果etcd出问题 etcd是一个高可用的分布式键值(key-value)数据库,主要用于共享配置和服务发现 (服务发现:在一个分布式集群中的服务如何才能找到对方并与其建立连接) apiserver和etcd无法通信,会导致无法找到对应的node,那么kubelet也就无法更新所在node上的状态 3)如果scheduler或者controller manager出现问题 scheduler负责调度 : 为每一个Pod从Node列表中选择一个合适的Node controller manager : 负责集群内的Node,Pod副本,namespace等的管理,当某个Node意外宕机,CM会及时发现此故障并执 行自动化修复流程,确保集群始终处于预期的工作状态 二者出现问题会导致deployment,pod,service等资源无法正常分配到Node

Node.js学习笔记-第二天

让人想犯罪 __ 提交于 2019-12-11 08:30:55
1.什么是系统模块 Node 运行环境提供的API,因为这些API都是以模块化的方式进行开发的,所有我们又称Node运行环境提供的API为系统模块 3.1系统模块fs文件操作 //f :file 文件 , s :system 系统,文件操作系统。 const fs = require('fs'); //读取文件内容 fs.reaFile('文件路径/文件名称‘[,'文件编码'],callback); 来源: https://www.cnblogs.com/foreverLuckyStar/p/12020220.html

nodejs安装,配置环境,使用express建立一个新项目

こ雲淡風輕ζ 提交于 2019-12-11 06:35:16
nodejs安装,配置环境,使用express建立一个新项目 1、下载nodejs安装包 去nodejs官网下载最新版本就行,网址:http://nodejs.cn/download/,点击自己适用的系统,自动下载跟电脑操作系统位数符合的安装包, 下载下来安装包之后一路next就行,nodejs安装路径不一定要使用默认的,我不想装在C盘,所以我选择了D:\Program Files\nodejs这个路径 2、配置环境 这个地方坑了我一整天,我之前反复安装过nodejs,以及改动过一些配置,导致我cnpm一直安装之后不能使用,提示:cnpm不是内部命令,自从去年接触过nodejs之后cnpm就能用过,这次刚好工作需要就好好搞一下, 安装好之后电脑系统变量path中自动存进去了nodejs安装的路径了,有些人安装nodejs,npm下载文件的地址默认是在C:\Users\lingling\AppData\Roaming\npm下面,截图如下(我的截图是装过几个插件后的样子): 我之前通过npm config set prefix,修改过这句话,所以我的路径有点混乱,现在呢,我想把路径再改回到这个默认路径下: 1、首先去我的电脑–》属性–》高级系统设置–》环境变量:把用户变量的path新增一个npm放全局安装插件的路径,即:C:\Users\lingling\AppData