nodejs11-路由的封装(下)
2019-11-13 本文已影响0人
经纬文学
如果说我比别人看得更远些,那是因为我站在了巨人的肩上. ——牛顿 伊萨克.牛顿 (lsaac Newton )
- 先看一下express官网的路由
// invoked for any requests passed to this router
router.use(function(req, res, next) {
// .. some logic here .. like any other middleware
next();
});
// will handle any request that ends in /events
// depends on where the router is "use()'d"
router.get('/events', function(req, res, next) {
// ..
});
清晰脱俗,简洁易懂
取其精华,去其糟粕
新建demo1.js
var http = require('http')
var url = require('url')
var Obj = {}
var app = function (req, res) {
var pathname = url.parse(req.url).pathname
res.writeHead(200, {'Content-Type':'text/html;charset=utf-8'})
if (!pathname.endsWith('/')){
pathname = `${pathname}/`
}
if (Obj[pathname]) {
Obj[pathname](req,res)
} else {
res.end('无效路径')
}
}
app.get = function (string, callback) {
if (!string.endsWith('/')) {
string = `${string}/`
}
if (!string.startsWith('/')) {
string = `/${string}`
}
// 注册方法
Obj[string] = callback
}
app.get('login', function(req, res) {
res.end('login')
})
app.get('register', function(req, res) {
res.end('register')
})
http.createServer(app).listen('8083')
console.log('Server is Running in 8083')
照葫芦画瓢,先学个七分
补充
一个线程只能隶属于一个进程,但是一个进程是可以拥有多个线程的。