nodejs基础知识点

var http = require("http");载入 http 模块,并将实例化的 HTTP 赋值给变量 httpnode

使用 http.createServer() 方法建立服务器,并使用 listen 方法绑定 8888 端口web

函数经过 request, response 参数来接收和响应数据编程

可使用下划线 _ 获取上一个的结果服务器

ctrl + d 退出 Node 命令框架

.clear 退出多行表达式异步

Node.js 异步编程的直接体现就是回调.回调函数通常做为函数的最后一个参数出现.异步编程

非阻塞调用,不须要等待文件读取完,不须要按顺序的,这样就能够在读取文件时同时执行接下来的代码,大大提升了程序的性能。函数

非阻塞式IO或者事件驱动IO,webserver一直接受请求而不等待任何读写操做。性能

var events = require('events');引入 events 模块
var eventEmitter = new events.EventEmitter();建立 eventEmitter 对象网站

events 模块只提供了一个对象: events.EventEmitter。
EventEmitter 的核心就是事件触发与事件监听器功能的封装。

on(event, listener),on 函数用于绑定事件函数。接受一个字符串 event 和一个回调函数。

emit(event, [arg1], [arg2], [...]) 按参数的顺序执行每一个监听器

emit 属性用于触发一个事件
event.emit('some_event');   向 event 对象发送 some_event事件

once(event, listener)监听器最多只会触发一次

listenerCount(emitter, event)返回指定事件的监听器数量。

写入缓冲区 len = buf.write("www.runoob.com");
从缓冲区读取数据 buf.toString('ascii'))
将 Buffer 转换为 JSON 对象buf.toJSON()
缓冲区合并Buffer.concat([buffer1,buffer2])
缓冲区比较buffer1.compare(buffer2)
拷贝缓冲区buf2.copy(buf1, 2);//将 buf2 插入到 buf1 指定位置上 从0开始
缓冲区裁剪buffer1.slice(0,2)   实际是前两个存在
缓冲区长度buffer.length


Stream 是一个抽象接口
建立可读流var readerStream = fs.createReadStream('input.txt');

写入流var writerStream = fs.createWriteStream('output.txt');
查看写入的文件的内容 cat 文件名

读取一个文件内容并将内容写入到另一个文件中 readerStream.pipe(writerStream);

建立模块,一个 Node.js 文件就是一个模块
Node.js 提供了 exports 和 require 两个对象,exports 是模块公开的接口,require 用于从外部获取一个模块的接口 

var hello = require('./hello');  经过 require('./hello') 加载这个hello.js文件,就能够访问exports对象的成员函数
exports.world  把world当成访问接口 

module.exports = Hello 在外部引用该模块时,其接口对象就是要输出的 Hello 对象自己,而不是原先的 exports。

若是要对外暴露属性或方法,就用 exports 就行,要暴露对象(相似class,包含了不少属性和方法),就用 module.exports。

匿名函数 不用给这个函数起名字,把一个函数做为变量传递
 
Node.js 中的全局对象是 global
不可能在最外层定义变量,由于全部用户代码都是属于当前模块的,

永远使用 var 定义变量以免引入全局变量,由于全局变量会污染命名空间

console.log( __filename );表示当前正在执行的脚本的文件名
console.log( __dirname );表示当前执行脚本所在的目录。

setTimeout(cb, ms) 全局函数在指定的毫秒(ms)数后执行指定函数(cb)。:setTimeout() 只执行一次指定函数。

setInterval(cb, ms)同上,可是 会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。

console 用于提供控制台标准输出
console.log 接收若干 个参数,若是只有一个参数,则输出这个参数的字符串形式。
若是有多个参数,则 以相似于C 语言 printf() 命令的格式输出。

var fs = require("fs")导入文件系统模块(fs)

异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。比起同步,异步方法性能更高,速度更快,并且没有阻塞。

打开文件fs.open('input.txt', 'r+', function(err, fd) 
'input.txt'文件的路径。    r+以读写模式打开文件。若是文件不存在抛出异常。 回调函数,

获取文件信息
fs.stat(path, callback)   文件路径    回调函数

写入文件fs.writeFile('input.txt', '我是通 过fs.writeFile 写入文件的内容',  function(err)

读取文件fs.read(fd, buf, 0, buf.length, 0, function(err, bytes)

关闭文件fs.close(fd, function(err)

截取文件  删除文件 建立目录fs.mkdir(path[, options], callback)  读取/删除目录
 
获取GET请求内容
URL是完整的请求路径,包括了?后面的部分,所以你能够手动解析后面的内容做为GET请求的参数。
可使用 url.parse 方法来解析 URL 中的参数

经过 POST 提交并输出数据

Express 是一个简洁而灵活的 node.js Web应用框架,能够快速地搭建一个完整功能的网站
静态文件

router.get('/',service.showIndex)    路径  业务方法

exports.showIndex=(req,res)=>{res.render('index',{list:data})} 

showIndex方法    'index',{list:data} 模板文件名称 数据