浏览器内核
一、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开发网站和PHP\java、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\n'); console.log('b'); process.stdout.write('a\n'); process.stdout.write('b');
process.stdout.write('a\n');不带换行的输出
注意:
process模块无需通过require()函数来加载模块,可以直接调用
fs模块必须使用require()加载 var fs = require("fs")
process模块是全局模块,而fs模块不是全局模块,全局模块可以直接使用,而非全局模块需要先通过require('')加载该模块
十三、单线程 非阻塞异步
演示地址: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");
}