nodejs基础-

浏览器内核

一、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. Doc​Blockr
注释插件,生成幽美的注释。标准的注释,包括函数名、参数、返回值等,并以多行显示,省去手动编写。

使用方法见: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('')加载该模块

 

  • 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");
}

  

 

posted @ 2019-07-24 20:18  eadela  阅读(313)  评论(0编辑  收藏  举报