一、原生获取url参数的两种方式
var http = require('http');
var url = require('url');
var qs = require('qeurystring');
var server = http.createServer( onRequest ).listen( 3000 );
function onRequest(req, res) {
var data1 = url.parse(req.url , true).query ; // 方法一
var data2 = qs.parse(url.parse(req.url).query) ; // 方法二
res.writeHead(200);
res.write('nodeRequest');
res.end();
}
二、箭头函数
直接写出返回值
var f = function() { return 5 };
var f = () => 5; // 等同于上面的函数
var sum = function(num1, num2) { return num1 + num2; };
var sum = (num1, num2) => num1 + num2; // 等同于上面的函数
三、面向对象
require 用来加载代码, 而 exports f和 module.exports 则用来导出代码。
- exports 是指向 module.exports 的引用
- require() 返回的是 module.exports 而不是 exports
1.写一个模块(类) rocker.js
function User(name, age) {
this.name = name;
this.age = age;
this.about = function() {
console.log(this.name + 'is' + this.age + 'years old');
};
};
module.exports = User;
调用
var Rocker = require('./rocker.js');
var r = new Rocker('Ozzy', 62);
r.about(); // Ozzy is 62 yesrs old
继承
var User = requeir('./User');
function Teacher(name, age){
User.apply(this, [name,age]); // 继承了 User类
this.teach = function(res) {
res.write('子类的新方法');
}
}
module.exprots = Teacher;
2.写一个模块(数组)
module.exports = ['Lemmy','Ozzy','Ronnie','Steven','Mick'];
调用
var rocker = require('./rocker.js');
console.log('Rockin in heaven: ' + rocker[2]); // Rockin in heaven: Ronnie
三、Buffer(数据块)
JS语言自身只有字符串数据类型,没有二进制数据类型,因此 NodeJS提供了一个与String对等的全局构造函数Buffer来提供对二进制数据的操作。
四、单例模式
创建单例类 ConnPool
module.exports = (function() {
// 引入时就执行
var _value = 1;
// 闭包方法
return function() {
console.log('value=' + _value++);
}
})()
引入使用
var c = require('./ConnPool'); // 引入就执行,实例化 _value
c(); //调用时,执行闭包方法
五、带参数跳转
1.url方式传参
res.redirect('/index?email=aa&pwd=aaa')
2.session方式
req.session.rs = rs
res.redirect('新路径');
//新路径中:
rs = req.session.rs;
delete req.session.rs; //清楚参数
- http重定向状态码
/*
301: 永久重定向,告诉客户端以后应从新地址访问
303: 对于POST请求,它表示请求已经被处理,客户端可以接着使用GET方法去请求Location里的URI
307: 对于POST请求,表示请求还没有被处理,客户端应该向Loaction里的URI重新法器POST请求
301,302和303的处理结果是一样的,直接跳转到test2.php,post没有内容
307的会重新post请求到test2.php,并且给出页面提示
*/
六、jQuery
// 取出选择框中的文本
$(this).find("option:selected").text()
$("#typeid").find("option:selected").text()