开发者学堂课程【Node.js 入门与实战:封装router模块补充】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8321
封装router模块补充
一、搭建APP.JS和router.js文件
1.APP.JS
//app.js 模块职责: 负责启动服务
//1.加载 express 模块
var express = require(
‘
express
’
);
//加载 config.js 模块
var config = require(
‘
./config.js
’
);
//加载路由模块
Var router =require(
‘
./router.js
’
);
//2.创建 APP 对象
Var app=express();
Console.log(router.tostring());
//3.注册路由
//设置 app 与 router 相关联
App.use(‘/’,router);//表示访问当前根目录下的任何的一个路径都会执行后面的代码,通过router设置路由。通过 router.js 文件注册路由,把注册好的路由挂载到APP。
App.use(
‘
/
’
,function(req,res)){
//body
});
App.use(function(req.res){
//body...
});//以上两段代码写法都是一样的,所以使用的时候,使用任意一个即可。
//4.启动服务
App.listen(config.port,function(){
Console.log(
‘
http://localhost:
’
+config.port);
});
2. 路由执行代码
//1.创建一个 router 对象(router 对象既是一个对象,也是一个函数)
Var express=rquire(
‘
express
’
);
Var router=express.router();
通过 router 设置了路由,挂载了路由
Router.get(‘/index’,function(fdsa,fdsa)){
//body...});//设置好执行路径,内部保存一个路由表,请求方法和请求路径
Router.get(‘/submit’,function(req,res)){
//body...});
//先注册好路由
Router.get(‘/item’,function(redq,res)){
//body...});
Router.get(‘/add’,function(req,res)){
//body...});
Router.post(‘/add’,function(req,res)){
//body...});
//3.返回 router 对象
Module.exports=router;
3.application.js
app.use=function use(fn) {
Var offset=0;
Var path=
’
/
’
;
//default path to
‘
/
’
//disambiguate app.use([fn])
If(typeof fn!==
’
function
’
)
{
Var arg[0];
}
//first arg is the path
If(typeof arg !==
’
funtion
’
){
Offset=1;
Path=fn;
}
}
Var fns= flatten(slice.call(orguments,offset));
If(fns.length===0){
Throw new typeerror(app.use()requires a middleware function
’
)}
//setup router
This.lazyrouter();
Var router=this._router;//router
这个对象相当于 app 对象里面默认包含的对象