nodejs基础1

来源:互联网 发布:外卖网络市场调研报告 编辑:程序博客网 时间:2024/05/17 03:54
一、Javascript知识
1、javascript是什么东东?
脚本语言;运行在浏览器中;一般用来做客户端页面的交互;
2、javascript运行环境?
运行在浏览器内核中的js引擎(engine)
3、JS能做什么?
操作DOM(对DOM的增删改、注册事件)
Ajax/跨域
BOM对象(Browser Object Document):页面跳转、历史记录、console.log
ECMAScript
4、JS 不能做什么?
文件操作(文件和文件夹的CRUD)
操作系统信息
*为什么不做这两块?
因为js一般放在服务器上,而当用户访问服务器上的js时,就能随意操作客户的文件系统和操作系统。
5、JS只能运行在浏览器中吗?


二、Chrome作用
1、请求一个HTTP地址(封装一个请求报文)
浏览器最大作用就是将一个URL地址封装成一个请求报文
2、解释服务器给回来的响应报文
html 渲染HTML
css 渲染CSS
image渲染
js 解释JS

三、什么是Node
1、官网介绍
Node.js 是一个基于 Chrome V8擎的 JavaScript 运行环境。 
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 
Node.js 的包管理器 npm,是全球最大的开源库生态系统。0
2、白话解释
Node就是javascript语言在服务器上的运行环境;
所谓运行环境有两层意思:
1)JavaScript语言通过Node在服务器运行,在这个意义上,Node有点像javascript虚拟机;
2)Node提供大量工具库,是的JavaScript语言与操作系统互动(读写文件、新建子线程),在这个意义上,node优势javascript的工具库。

四、Node实现
1、Node内部采用google chrome的v8引擎,作为javascript语言解释器;
2、通过自行开发的libuv库,调用操作系统资源
3、Node在web中的用途
1)做网站
2)分发数据请求,渲染HTML页面(天猫就是这么搞得,有自己的Node服务器做数据分发)

五、Node环境配置
1、下载安装压缩版便于版本更新,nvm用来管理不同版本的node和npm

六、基础概念概要(node是一个运行js的平台)
1、node:进入REPL(全称:Read、Eval、Print、Loop)环境,可接受用户输入、执行用户输入、打印执行结果到控制台、循环到下一次;类似于chrome的控制台;
2、process.exit()或.exit:退出REPL环境;
3、node .index.js:执行脚本文件index.js;
注意:node脚本文件中不能使用document,只能写一些简单的ES代码;
运行node脚本文件,首先进入脚本文件所在目录,然后使用node 脚本文件名进行运行。

七、全局对象
1、Global(相当于客户端JavaScript运行环境中的window对象)
2、process:用于获取当前Node进程信息,一般用于获取环境变量之类的信息
3、console:Node中内置的console模块,提供操作控制台的输入输出功能,常见使用方式与客户端类似。
示例:process的对象
1)argv
2)stdout 和 stdin:标准输入输出
控制台模板字符串:
补充:小妙招,如何将图片转为字符画, http://www.degraeve.com/img2txt.php

八、DEBUG调试
1、简单方法:console.log()
2、Node原生的调试:
http://nodejs.cn/api/debugger.html
3、第三方模块提供的调试工具:
$ npm install node-inspector -g
$ npm install devtool -g
4、开发工具的调试:直接在visual studio code中加断点,或者webstorm

小例子:连续两次按下ctrl+c退出

小例子:控制台登录

九、异步回调函数
引言:阻塞式,会等到循环结束之后才执行console.timeEnd('main');
1、异步操作
• Node 采用 Chrome V8 引擎处理 JavaScript 脚本,
V8 最大特点就是单线程运行,一次只能运行一个任务。
• Node 大量采用异步操作(asynchronous
operation),即任务不是马上执行,而是插在任务队
列的尾部,等到前面的任务运行完后再执行。
• 提高代码的响应能力。
2、回调函数的设计
• 对于一个函数如果需要定义回调函数:
– 回调函数一定作为参数的最后一个参数出现:
• function foo1(name, age, callback) { }
• function foo2(value, callback1, callback2) { }
– 回调函数的第一个参数默认接收错误信息,第二个参数才是真正
的回调数据(便于外界获取调用的错误情况):
3、什么是异步?ajax、setTimeout()、文件操作、Node所有的会发生阻塞的操作




原创粉丝点击