node

一文入门NodeJS

可紊 提交于 2020-03-30 04:22:40
NodeJS ¶ 1.环境配置 ¶ 之前讲ES6的时候 有提过一部分Node的知识,简单回顾下: 一文读懂ES6 1.1.NPM国内镜像 ¶ npm国内镜像 : https://npm.taobao.org 配置国内源: npm install -g cnpm --registry=https://registry.npm.taobao.org 然后就可以把 cnpm 当作 npm 来用了,比如之前的 React 组件案例: cnpm install react cnpm install react-dom cnpm i babel-core@old 卸载安装的包 : npm uninstall -g uuid 用 npm 而不是 cnpm 常用参数说明: i 是 install 的简写 -g 是安装到全局环境中(默认是当前目录) -D 添加为开发依赖( -D ==> --save-dev 开发环境) -S 添加为生产依赖( -S ==> --save 生产环境) eg: cnpm i express -S eg: cnpm init 之后: PS: 你把依赖包删了也没事,执行 cnpm i 就会会根据 package.json 自动安装依赖包 课外阅读: npm如何管理依赖包的版本 https://www.jianshu.com/p/1470c5d7b8c3

Nodejs入门

六眼飞鱼酱① 提交于 2020-03-30 04:22:19
----------------------------Nodejs是个什么东西 javascript是一门完整的语言,可以运行在不同的上下文环境中. 我们平时都在浏览器中运行javascript代码,浏览器为js提 提供了一个上下文,它定义了使用JavaScript可以做什么 Node.js事实上就是另外一种上下文,它允许在后端(脱离浏览器环境)运行JavaScript代码。 要实现在后台运行JavaScript代码,代码需要先被解释然后正确的执行。Node.js的原理正是如此,它使用了Google的V8虚拟机(Google的Chrome浏览器使用的JavaScript执行环境),来解释和执行JavaScript代码。 ---------------------------------技巧 node安装以后可以用 $ node app 命令执行。 如果直接用输入node回车,会进入持续的node环境,可运行javascript代码,按两次ctrl+c退出 前几天摸索的mongodb也有这个功能,因为mongodb的shell是基于javascript的 两者的连续输入模式都可以输入,运行javascript代码。 node的模块只能加载一次, quire导入模块的时候,会先从require.cache 中检查模块是否已经加载,如果没有加载,才会从硬盘中查找模块脚本并加载。

Windows 10 下 Node.js 入门

只愿长相守 提交于 2020-03-30 04:16:24
例子工程在此下载 Windows 下 Node.js 入门 NodeJS的历史就不说了,别人说过了。最最关键Google JavaScript V8 开发成功,运行效率很高,开放二次开发接口(C++库,功能类似常见的Lua,Python等脚本的的开放库)。本来V8主要给Chrome浏览器服务的,经不住运行效率太优秀了,所以就有人动起了开发Native端的JavaScript运行环境的主意。NodeJS是这个思路的产物。 这是官网 https://nodejs.org/ 英文 https://nodejs.org/zh-cn/ 中文(除了API其它都中文了) 这个是一个有质量上乘的中文API NodeJS API文档的网址。 NodeJS中文网 http://nodejs.cn/ 这是一个中文书籍《深入浅出nodejs》的他人写的读书笔记。 nodejs深入学(1)概述 https://www.jianshu.com/p/37d16a63fbb9 在Windows上的安装,参考中文官网链接吧。 安装后,在Windows的CMD窗口通过 node -v, npm -v 检查安装正确性。 可以书写一个index.js, 内部只需下面一行代码,通过 node index.js 运行试试。 console.log("Hello Node JS, " + new Date());

第七周作业

笑着哭i 提交于 2020-03-30 03:47:59
20162310林臻 2017-2018-1 《程序设计与数据结构》第7周学习总结 教材学习内容总结 非线性结构树的学习 树是一对多或多对多的形式 一个树只有一个根节点(root),父节点和孩节点的概念是相对的,没有孩节点的节点称为叶节点 树的实现也有两种形式,数组和链表。 树的常见的几种分类:二叉树,平衡二叉树,B 树,B+ 树,哈夫曼树,堆,红黑树 教材学习中的问题和解决过程 问题1:对于树的度,节点的度,树的高度,深度以及节点的层次概念不清、 问题1解决方案: 节点的度分为0,1,2.及表示节点所含的分支个数,上图中3 的度是 2,10 的度是 1。 树的度分为0,1,2即表示一棵树中最大节点的度,即哪个节点的子节点最多,它的度就是树的度,上图中树的度为 2。 树的高度,即从叶子节点开始,自底向上增加。 树的深度与树的高度相反,从根节点向下增加。比如上图中的 6 ,高度是 2 ,深度是 3。 本章重点,二叉树 二叉树的定义:二叉树是有限个节点的集合,这个集合可以是空集,也可以是一个根节点和至多两个子二叉树组成的集合,其中一颗树叫做根的 左子树,另一棵叫做根的右子树。 满二叉树的:一个树每个节点要么有两个节点,要么没有节点,符合这类条件的树称为满二叉树。 定义:如果一棵树的高度为 k,且拥有 2^k-1 个节点,则称之为 满二叉树。 完全二叉树

深入浅出node读书笔记(一)

随声附和 提交于 2020-03-30 03:33:58
  老早就想读这本书了,可是因为这样那样的原因,总归是耽搁了,前几天一直在纠结毕业设计用什么语言来实现后端逻辑代码的问题,通过一周时间的痛苦挣扎,选择了node,于是就又开始学习node了,希望写随笔这种形式能够逼着我把node好好研究一遍。   首篇文章主要讲述该书的第一个章节,因为是读书笔记,内容可能不会很全面,大概只会写下我认为重要的东西,一些无关紧要的内容可能略过。本篇文章主要从两个方面来介绍node,分别是:node的特点以及node的使用场景。   (1)node的特点:     a)异步I/O:异步I/O对前端来说应该相对熟悉一些,首先看下面一个ajax请求的例子:  $.ajax({ url:'www.baidu.com', type:'post', data:'data', success:function(){ console.log('请求完成'); } }) console.log('开始请求') 执行完的结果是:开始请求 请求完成 当请求发出后,js单线程即不等待请求结果,继续执行下边的代码,当请求完成后,success函数被触发,执行里面的代码,即异步 b)回调函数:见上一条ajax实例,sucess即为该次请求成功之后的回调函数,请求成功之后调用 c)单线程:总所周知,js是单线程的,在浏览器端如果线程用来长时间执行js代码,就会阻碍ui的渲染过程

<Node入门经典>读书笔记

孤人 提交于 2020-03-30 03:31:30
最近在读<Node入门经典>, 之前没有做笔记, 今天开始把看过自己又写了的代码放这里以免忘记. express var express = require('express') var app = express() app.get('/', function (req, res) { res.send('Hello World') }) app.listen(3000) View Code route var http = require('http'); var url = require('url'); http.createServer(function(req,res){ var name = url.parse(req.url).pathname; if (name === '/'){ res.writeHead(200,{ 'Content-Type':'text/plain' }); res.end('home page'); } else if (name === '/about'){ res.writeHead(200,{ 'Content-Type':'text/plain' }); res.end('about me'); } else if (name === '/redirect') { res.writeHead(301,{ 'location':

代码的组织和部署

☆樱花仙子☆ 提交于 2020-03-30 03:29:51
模块路径解析规则 源链接 我们知道的 require 函数支持的两种路径有: 以 / 或者 C: 开头的绝对路径 以 ./ 开头的相对路径。 以上路径的缺点是: 使得模块之间建立了强耦合关系,一旦某个模块文件的存放位置需要变更,使用该模块的其它模块的代码也需要跟着调整,变得牵一发动全身。 下面来了解一下 require 支持的第三种形式的路径,写法类似于 foo/bar ,按照一下规则解析,直到找到模块位置。 内置模块 遇到NodeJs的内置模块,不做解析,直接返回内置模块导出的对象。 node_modules目录 node_modules 目录是NodeJs定义的用于存放模块的。 当require('foo/bar')时,NodeJs依次尝试一下路径: /home/user/node_modules/foo/bar /home/node_modules/foo/bar /node_modules/foo/bar NODE_PATH环境变量 与PATH环境变量类似,NodeJS允许通过 NODE_PATH 环境变量来指定额外的模块搜索路径。 NODE_PATH 环境变量中包含一到多个目录路径,路径之间在Linux下使用":"分隔,在Windows下使用";"分隔。例如定义了以下 NODE_PATH 环境变量: NODE_PATH=/home/user/lib:/home/lib

nodejs学习笔记

冷暖自知 提交于 2020-03-30 03:29:02
本文内容摘自 七天学会NodeJS ,摘抄内容只是本人觉得比较重要或者还没有理解的 模块 编写稍大一点的程序时一般都会将代码模块化。在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名。 在编写每个模块时,都有 require 、 exports 、 module 三个预先定义好的变量可供使用。 require require 函数用于在当前模块中加载和使用别的模块,传入一个模块名,返回一个模块导出对象。模块名可使用相对路径(以 ./ 开头),或者是绝对路径(以 / 或 C: 之类的盘符开头)。另外,模块名中的 .js 扩展名可以省略。以下是一个例子。 var foo1 = require('./foo'); var foo2 = require('./foo.js'); var foo3 = require('/home/user/foo'); var foo4 = require('/home/user/foo.js'); // foo1至foo4中保存的是同一个模块的导出对象。 另外,可以使用以下方式加载和使用一个JSON文件。 var data = require('./data.json'); exports exports 对象是当前模块的导出对象,用于导出模块公有方法和属性。别的模块通过 require

node.js 的模块化

五迷三道 提交于 2020-03-30 03:25:37
模块的概念 为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块加载系统。 在 Node.js 中,文件和模块是一一对应的(每个文件被视为一个独立的模块),换言之,一个 Node.js 文件就是一个模块 模块是Node.js 应用程序的基本组成部分,每个模块都有自己的作用域 在 Node中,模块分为两类 一类是 Node 提供的模块,称为核心模块;另一类是用户编写的模块,称为文件模块。 核心模块部分在 Node 源代码的编译过程中,编译进了二进制执行文件。在 Node 进 程启动时,部分核心模块就被直接加载进内存中,所以这部分核心模块引入时,文件定位和 编译执行这两个步骤可以省略掉,并且在路径分析中优先判断,所以它的加载速度是最快的。 如:HTTP 模块 、URL 模块、Fs模块都是 nodejs 内置的核心模块,可以直接引入使用。 文件模块则是在运行时动态加载,需要完整的路径分析、文件定位、编译执行过程、 速度相比核心模块稍微慢一些,但是用的非常多。这些模块需要我们自己定义。接下来我 们看一下 nodejs 中的自定义模块 当前模块下的内置属性__filename 在node中,这个属性不属于全局的,是数据当前模块的, 每个模块都有这样的一个属性返回当前执行的文件的文件路径 , 该路径是经过解析后的绝对路径 ,在模块中,该路径是模块文件的路径 require

Node.js文档学习笔记(1)

♀尐吖头ヾ 提交于 2020-03-30 03:25:20
1.文档基于源代码下doc/ap目录下的.markdown文件生成的. 2.文档有html和json两种格式, json格式是一种实验性质的文档, 目的是便于类似于IDE调用文档, 可以做些诸如代码提示等工作. 3.API的稳定级别. 0级, 废弃. 该API已知有问题, 计划更改, 不应该依赖该API, 应该不会向后兼容. 1级, 实验. 该API是新加的, 可能会被改变或者移除. 2级, 不稳定. 该API已经被确定, 但没有经过足够的测试, 会尽量做向后兼容. 3级, 稳定. 该API已经确认可靠, 可能会有小的更改, 会保证向后兼容. 4级, 高稳定性(冻结). 该API经过广泛在生产环境下测试, 基本上不会被更改. 5级, 最高稳定性(锁定). 该API除非有安全问题, 否则代码都不会该, 你也不要要求更改此API, 你的要求会被拒绝的. 4.全局作用域 可以用console.log(global)来打印出来全局的类. var var1 = 10; 在浏览器中var1是全局的. 在node中这个var1的作用域只是在当前模块(module), 所以不要担心var声明变量会污染全局. 常用的全局模块 process, console, Buffer, require, require.resolve(), require.cache, __filename, _