NodeJS安装和使用
了解Node
NodeJS :主要应用于开发服务器,做数据API ,设计路由,和前端的主要区别在于,前端主要负责效果和交互、 node.js是追求性能极致的产物,主要的三个特点是: 单线程、Non-blocking I/O、Event Driven Nodejs和其他后端语言的不同:
- 采用单线程, 所以
- 需要非阻塞I/O,所以
- 需要事件驱动。 极大地提高了CPU的利用率:
- node没有自己的语法,使用V8引擎,用的是js,V8引擎解析js,效率非常高。并且V8中很多东西都是异步的,,Node就是站在巨人的肩膀上,把V8中的一些功能一直到服务器上
- 没有web容器 就是安装配置完成之后,也么有一个根目录。(使用路由)
- 模块:在Node.js中,以模块为单位划分所有的功能,并且提供了一个完成的模块加载机制,我们可以将应用程序划分为各个不同的部分。
#Windows命令
常用命令: dir
列出当下目录下面的所有文件 cd
进入指定的目录 md
创建文件夹 rd
删除文件夹 cd..
返回上级目录
#Mac命令
cd ~
进入我们的家目录 ls
列出当下目录下面的所有文件 cd 目录名
进入指定的目录 touch 文件名.html
创建一后缀是html的文件或者一次touch a.txt b.html
一次创建多个文件 mkdir 文件夹名
新建一个文件夹或者一次mkdir a b c
新建三个文件夹 rm 文件/文件夹
删除文件/文件夹 less index.html
查看文本文件内容 pwd
看看自己在哪个目录下 man
查看某个命令的详情 cd.. 返回上级目录
小技巧 用 Tab 键自动补齐命令 比如想到 /System 目录中去,输入 cd /Sy 然后按一下Tab 键,命令就会自动补齐成 cd /System 操作带名字中带有空格的文件和目录 空格在命令中写成 空格, 比如要进入 My Documents,命令为 cd My Documents
#进程和线程:
1.进程 系统进行资源分配和调度的基本单位 操作系统的基础,我们写的代码都是放在进程里的 相当于工厂的车间 如:任务管理器 2.线程 九三级的最小计量单位 负责执行进程中的程序,相当于车间里的操作工人, 单线程: js是单线程,时间片分割 多线程: 根据任务决定开起几条线程(耗内存) Node服务器: 单线程,但很健壮,后台拥有一个I/O线程池进行调度。分布式服务器部署。
#安装node.js
node.js 下载 有些可能需要配置全局环境变量
node -v 查看版本号
node 进入node环境,在这个环境中可以执行JavaScript语句
#让node.js跑起来
跑起来 node.js 1.node 命令行下写js代码 2.新建.js文件 > cd 到指定目录 > node index.js
建议使用最新的编辑器 有代码提示
#Node.js 的模块发开发
Node 需要模块化开发: 问题: js缺乏模块化的开发 解决:后来出现了commonJs (内部) 和npm(外部 包管理系统)它提供了模块的复用和引用,
CommonJs的出现 主要是为了弥补JavaScript没有模块化开发标准的缺陷,
CommonJS对模块化的定义:
- 模块引用 require(“路径”) 2.模块定义 3.模块表识
总结: 1.从文件的角度看,每个js文件就是一个模块,从结构看,多个js文件之间可以相互require,共同实现一个功能,整体上也是一个模块。 2.在Node.js中,一个模块中的定义的变量、函数等。都只能在这个文件内部有效;当需要从此文件外部引用这些变量、函数时,必须使用exports进行暴露,然后使用require引用。
A:我需要引用你 >> require B B: 那好 >> 我暴露
13课至17课笔记 视频地址:https://study.163.com/course/courseMain.htm?courseId=1005269026
- 简单易学的机器学习算法——线性支持向量机
- Java设计模式-模板方式模式
- 由一条create语句的问题对比mysql和oracle中的date差别 (r7笔记第26天)
- Java设计模式-命令模式
- 关于执行计划中的%CPU的含义 (r7笔记第25天)
- Java设计模式-享元模式
- 简单易学的机器学习算法——线性可分支持向量机
- 基于gensim的Doc2Vec简析,以及用python 实现简要代码
- 关于db link权限分配的苦旅(一) (r7笔记第42天)
- Java设计模式-责任链模式
- Java设计模式-策略模式
- CPU 100%负载的性能优化分析(r7笔记第40天)
- Sklearn-train_test_split随机划分训练集和测试集
- 使用shell来定制dbms_sqltune(r7笔记第39天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 开源:安卓手机app控制arduino,通过esp8266-01
- 聊聊dubbo-go的metricsFilter
- 程序设计理念-CentOs7实践Nginx-带来安装服务的通用法则
- 用CSS实现各种特殊效果
- 二分查找算法
- 一分钟学Python| Python的运算符 (上)
- JS开发必须知道的41个技巧【持续更新】
- PermissionX重磅更新,支持自定义权限提醒对话框
- 给Swagger换了个新皮肤,瞬间高大上了!
- 学习 | egg.js 中间件和插件
- Django template层之json报文遍历总结
- 015.Nginx重定向
- 明了 | MongoDB 外键的基本使用
- 优雅 | koa处理异常
- iOS开发之Context Menus