node学习笔记
一.注意事项
- 在node里面,console.log()是在后台输出
- 命令窗口运行文件node n1_hello.js运行文件
- 自带模块
Var http = require(‘http’)
Var url = require(‘url’)
res.write()返前台
var fs = require("fs")//文件操作
读取文件
var data = fs.readFileSync(path,'utf-8');//同步读取文件
异步:fs.readFile
同步:fs.readFileSync
fs.writeFile(path,data,function(err){})
fs.readFile(path,'binary',function(err,filedata){})
url.parse(req.url)//解析url
二.学习历程
1.作为web服务器
a. Var http = require(‘http’);//http是node自带的一个http对象
b. http.createServer(function(request, response){
// request浏览器发出的请求对象
// response返回给浏览器的对象
response.writeHead(200,{'Content-Type':'text/html;charset=utf-8'})
//Content-Type输出类型//response.writeHead协议头
if(request.url !== "/favicon.ico"){//清除第二次访问
console.log('访问');//后台输出
response.write('hello world');//返给前台
response.end(' ');// 必不可少
}
}).listen(8000);
//监听8000端口
console.log("Server running at http://127.0.0.1:8000/");
2.函数调用
a.调用本文件函数----直接调用
b.调用其他文件的js函数–导入;引用
3.模块调用
创建一个构造函数导出
导入模块
4.路由初步
5.读取文件
var fs = require("fs");//fs操作文件的类
读取文件
var data = fs.readFileSync(path,'utf-8');//同步读取文件
异步:fs.readFile
同步:fs.readFileSync
6.写文件
写文件—异步写文件--- fs.writeFile
fs.writeFile(path,data,function(err){
if(err){
throw err;
}
console.log('saved!');
recall("写文件成功");
})
7.读取图片
response.writeHead(200,{'Content-Type':'image/jpeg'})/读图片请求头
fs.readFile(path,'binary',function(err,filedata){
if(err){
console.log(err);
return;
}else{
res.write(filedata,'binary');
//读取图片filedata,然后发送出去各式’binary’
res.end();
}
})
8.接收get和post参数
Get:url.parse(url,true).query
Post:querystring.parse(post)
9.异步流程控制
异步流程控制:npm install async –save-dev
1. 串行无关联(结果无关联):async.series
async.series(
{
one:function(done){},
two:function(done){}
},function(err,rs){}
)
2. 并行无关联:async.parallel
3. 串行有关联:waterfall([])第一个结果传入下一个里面
10.链接mysql
Var mysql = require(“mysql”)
Var connection = mysql.createConnection({
Host:’localhost’,
User:’root’,
Password:’root’
Database:’test’,
Port:’3306’
})
Npm install –g node-mysql
11.事件监听
Emitter.addListener()
.on()
.once()
.removeListener()
.removeAllListener()
.setMaxListener()