浏览器内核
一、nodejs是什么?
一个开发平台,像java开发平台一样,使用编程语言,javascript,基于chrome V8引擎构建
可以开发控制程序,桌面应用程序,web应用程序
PHP开发技术栈--LAPH linux apache mysql php
nodejs 全栈开发技术栈: MEAN-MongoDB express Angular Nodejs
二、nodejs特点
1、事件驱动
2、非阻塞I/O模型(当执行I/O操作时,不会阻塞线程)
3、单线程
4、拥有世界上最大的开园库生态系统--npm
三、nodejs 网站
1、nodejs官方网站 https://nodejs.org
2、nodejs中文网 http;//nodejs.cn
3、nodejs中文社区 https://cnodejs.org
四、为什么学习nodejs
五、学习目标
了解服务器开发过程
会使用nodejs开发基本的http服务程序(web应用程序)
六、nodejs安装配置
官网下载 自动安装
校验是否安装成功: node -v
环境变量会自动配置,如果现实不是内部命令或者外部命令,则配置环境变量
环境变量的意义,当执行某个程序时候,先在当前目录查找,
如果有该程序,则执行,如果没有,到环境变量里面找,有则执行
七、nvm-windows管理一台计算机上的多个node版本
node version manager: https://github.com/coreybutler/nvm-windows
nvm -v
nvm --version
nvm list
nvm install latest
nvm uninstall
nvm use 版本号
八、nodejs开发网站和PHPjava、asp.net有什么区别
没有web容器
九、RPWL介绍
1. REPL全称: Read-Eval-Print-Loop (交互式解释器)
-R读取-该取用户输入,解析输入了Javascript数据结构并存储在内存中.
-E执行,执行输入的数据结构
-P打印-输出结果
-L循环-循环操作以上步骤直到用户两次按下ctrl-c按钮退出.
2,在REPL中编写程序(类似于浏览器开发人员工具中的控制台功能)
+直接在控制台输入"node.命令进入REPL环境
3,按两次Control + c退出REPL界面或者输入..exit"退出REPL界面
+按住control键不要放开,然后按两下c键
十、JavaScript文件名命名规则
不要用中文
不要包含空格
不要出现node关键字
建议以,-'分割单词
十一、sublime text下载
http://www.sublimetext.cn/官方下载地址
汉化方法
https://jingyan.baidu.com/article/15622f243c3844fdfcbea580.html
快捷键: Ctrl+L 选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+K Backspace 从光标处删除至行首 Ctrl+J 合并行(已选择需要合并的多行时) Ctrl+KU 改为大写 Ctrl+KL 改为小写 Ctrl+D 选择字符串 (按住-继续选择下个相同的字符串) Ctrl+M 光标移动至括号内开始或结束的位置 Ctrl+/ 注释整行(如已选择内容,同“Ctrl+Shift+/”效果) Ctrl+Shift+c转换为utf8 Ctrl+R 搜索指定文件的函数标签 Ctrl+G 跳转到指定行 Ctrl+KT 折叠属性 Ctrl+K0 展开所有 Ctrl+U 软撤销 Ctrl+T 词互换 Tab 缩进 自动完成 Shift+Tab 去除缩进 Ctrl+F2 设置书签. F2 下一个书签 Shift+F2 上一个书签 shift+鼠标右键 列选择 Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑 Alt+. 闭合当前标签 F6 检测语法错误 F9 行排序(按a-z) F11 全屏模式 Ctrl+Enter 光标后插入行 Ctrl+Shift+Enter 光标前插入行 Ctrl+Shift+[ 折叠代码 Ctrl+Shift+] 展开代码 Ctrl+Shift+↑ 与上行互换 Ctrl+Shift+↓ 与下行互换 Ctrl+Shift+A 选择光标位置父标签对儿 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找 Ctrl+Shift+K 删除整行 Ctrl+Shift+L 鼠标选中多行(按下快捷键),即可同时编辑这些行 Ctrl+Shift+M 选择括号内的内容(按住-继续选择父括号) Ctrl+Shift+P 打开命令面板 Ctrl+Shift+/ 注释已选择内容 Ctrl+PageDown 、Ctrl+PageUp 文件按开启的前后顺序切换 Ctrl+鼠标左键 可以同时选择要编辑的多处文本 Shift+鼠标右键(或使用鼠标中键)可以用鼠标进行竖向多行选择 Shift+Tab 去除缩进 Alt+Shift+1~9(非小键盘)屏幕显示相等数字的小窗口
常见插件
用Package Control安装插件的方法: 按下Ctrl+Shift+P调出命令面板 输入install 调出 Install Package 选项并回车,然后在列表中选中要安装的插件。 方法介绍完了,接下来进入今天正题,一些有用的Sublime Text 3插件: 注意:安装插件时保持网络畅通,避免插件由于网络原因奔溃 1. Emmet(原名 Zen Coding) 一种快速编写html/css的方法 注意:安装Emmet的同时,也会自动安装其依赖PyV8 binary库,安装PyV8库会用较长时间,可以在Sublime左下角看到安装进程状态 2. html5 支持hmtl5规范的插件包 注意:与Emmet插件配合使用,效果更好 使用方法:新建html文档>输入html5>敲击Tab键>自动补全html5规范文档 3. jQuery 支持JQuery规范的插件包 4. javascript-API-Completions 支持Javascript、JQuery、Twitter Bootstrap框架、HTML5标签属性提示的插件,是少数支持sublime text 3的后缀提示的插件,HTML5标签提示sublime text 3自带,不过JQuery提示还是很有用处的,也可设置要提示的语言。 安装方法(请阅读链接详情):http://www.ithao123.cn/content-10545789.html 5. JSFormat JS代码格式化插件。 使用方法:使用快捷键ctrl+alt+f 6. SublimeLinter 一个支持lint语法的插件,可以高亮linter认为有错误的代码行,也支持高亮一些特别的注释,比如“TODO”,这样就可以被快速定位。(IntelliJ IDEA的TODO功能很赞,这个插件虽然比不上,但是也够用了吧) ##### 7. BracketHighlighter 类似于代码匹配,可以匹配括号,引号等符号内的范围。 使用方法:系统默认为白色高亮,可以使用链接所述方法进行自定义配置 http://www.360doc.com/content/14/1111/15/15077656_424301780.shtml 8. Alignment 代码对齐,如写几个变量,选中这几行,Ctrl+Alt+A,哇,齐了。 9. Ctags 函数跳转,我的电脑上是Alt+点击 函数名称,会跳转到相应的函数 10. DocBlockr 注释插件,生成幽美的注释。标准的注释,包括函数名、参数、返回值等,并以多行显示,省去手动编写。 使用方法见:http://www.cnblogs.com/huangtailang/p/4499988.html 11. SideBarEnhancements 侧栏右键功能增强,非常实用 使用方法(参考链接内容):http://www.w3cfuns.com/notes/13810/d9b9ed2fb80785dae88a5344ef0f30d4.html 我的github博客资源地址:https://github.com/LeonWuV/FE-blog-repository --------------------- 作者:LeonWuV 来源:CSDN 原文:https://blog.csdn.net/wxl1555/article/details/69941451 版权声明:本文为博主原创文章,转载请附上博文链接!
十二、案例
console.log('a');
console.log('a
');
console.log('b');
process.stdout.write('a
');
process.stdout.write('b');
process.stdout.write('a ');不带换行的输出
注意:
process模块无需通过require()函数来加载模块,可以直接调用
fs模块必须使用require()加载 var fs = require("fs")
process模块是全局模块,而fs模块不是全局模块,全局模块可以直接使用,而非全局模块需要先通过require('')加载该模块
- Globals模块下均是全局模块
十三、单线程 非阻塞异步
演示地址:http://latentflip.com/loupe
十四、写入读取文件
默认是utf-8,如果不写,则需要toString(),将buffer转变为string
解决在文件读取中 ./相对路径的问题
解决:_dirname 、_filename
_dirname:表示,当前正在执行的js文件所在的目录
_filename表示,当前正在执行的js文件的完整目录
不是全局,本地方法
创建文件夹
注意:
1、异步操作无法通过try-catch来捕获异常,要通过判断error来判断是否出错,
2、同步操作可以通过try-catch来捕获异常
3、不要使用fs.exists(path,callback)来判断文件是否存在,直接判断error即可
4、文件操作时的路径问题
在读写文件的时候../"表示的是当前执行node命令的那个路径,不是被执行的js文件的路径
dirname,表示的永远是“当前被执行的js的目录
filename,表示的是"被执行的 s的文件名(含路径)"
5、error-first介绍(错误优先)
var fs1 = require("fs"); try{ fs1.writeFile("./yyy/abd.txt","大家早上好","utf-8",function (err,data) { // body... /*if (err) { console.log("出错了throw!"); }*/ console.log("ok"); }); }catch(e){ console.log("出错了catch"); }