1. Node.js是什么?javascript
简单的说 Node.js 就是运行在服务端的 JavaScript。css
Node.js 是一个基于Chrome JavaScript 运行时创建的一个平台。html
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,所以不须要考虑兼容性的问题,V8引擎执行Javascript的速度很是快,性能很是好。java
Node.js是运行在服务端上的Javascript。node
Node的核心语言是javascript,并非一门新的语言,而是一门技术。数组
2. Node的模块服务器
Node的模块主要分为两类:宿主模块和内置模块。模块的主要目的是为了方便管理和维护。并发
宿主对象: window history异步
内置对象:math data regexp array string......函数
模块的导入(require):
var http = require("http"); //导入http模块 var fs = require("fs"); //导入文件系统模块 var querystring = require("querystring"); //导入参数模块 var url = require("url"); //导入地址模块
3. 一个简单的node.js
var http = require("http"); //引入http的模块,用来提供服务 var fs = require("fs"); var server = http.createServer(); //建立一个服务器 //server监听request事件,callback server.on('request',function(request,response){ response.writeHead(200,{"Content-Type" : "text/html;charset=utf8"});
res.end('Hello World\n');
}); // 服务搭建完成,监听端口 server.listen(8888); console.log('服务运行在localhost:8888')
//ctrl+c 中止
4. 关于文件系统(fs)的一些经常使用的方法
在填写路径的时候必须加上"./"这是表示在当前目录。
4.1 读取文件 readFile(异步)和readFileSync(同步)。
// fs 文件系统的模块 var fs = require("fs"); // console.log(fs); // 异步读取文件 fs.readFile('./08.txt','utf8',function(err,data){ //若是编码格式不写,输出的就是一串buffer码 if(err){ throw err; //把错误抛出来,阻止代码继续日后面走 } console.log(data) }) // 同步 // var data = fs.readFileSync("./08.txt",'utf8') //同步读完就是函数的返回值 // console.log(data)
4.2 判断文件(文件夹)是否存在
fs.access('./08.txt',function(err){ //判断文件是否存在 if(err){ throw err; } // 若是没有抛出错误,文件存在 fs.readFile('./08.txt','utf8',function(err,data){ if(err) throw err; console.log(data); }) }) fs.access("./abc",function(err){ //判断文件夹 if(err){ throw err; } console.log('hello') })
4.3 建立文件夹(同异步)
异步的建立文件夹 fs.mkdir("./data02",function(err){ console.log(err); //node会报错,可是错误都不会抛出,不会影响后续代码的执行 console.log('OK'); }) 同步的建立文件夹 fs.mkdirSync(path[, options])
4.4 读文件夹(同异步)
fs.readdir("./data",function(err,data){ console.log(err); console.log(data); //里面的文件以数组的形式表示出来,进行判断,判断是不是文件夹 // 若是是文件夹,继续读文件夹,若是是文件,直接读文件,而后展现 }) 同步的读文件夹 fs.readdirSync(path[, options])
5. 知识补充
什么是i/o?
i:input
o:output
输入和输出, i/o 就是服务器的一个读写操做。
什么是并发?
段时间内有多个程序在运行到运行完毕之间。
同步和异步有什么区别
同步会阻塞 循环 script加载src。
异步不会阻塞代码 定时器,link加载css,img加载src。
什么是异步的IO?
要有数据的交互 异步的IO 读文件。
没有数据的交互 异步的非IO setTimeout setInterval。
线程与进程
一个程序至少须要一个进程,一个进程至少须要一个线程。