- 伪对象形式
app = function () { console.log("我是一个初始化的app对象"); }; app.get=function () { console.log('这是一个app的get方法'); }; app.post = function () { console.log('这是一个post方法'); }; app(); app.post();
输出结果
我是一个初始化的app对象
这是一个post方法
- 一个增强的伪对象
G={}; var app = function (req,res) { if (G['login']) { G['login'](req,res); } }; app.get=function (urlinstring,callback) { G[urlinstring]=callback; }; app.get('login',function (req,res) {
//注意,这里的req和res并非http server中的请求和相应对应的req和res console.log("这是login方法用到的参数req的值:"+req); console.log('this is a module for login'); }); setTimeout(function (){ app("嘿~人参娃哟~,嘿真机灵","人参王国片头曲"); },3000);
输出结果:
这是login方法用到的参数req的值:嘿~人参娃哟~,嘿真机灵
this is a module for login
- 进化版本(新建一个文件夹logic,新起一个文件myserver.js,根据需要,总之新文件一定要有)
var http =require('http'); var app = require('./logic/apphandler'); http.createServer(app).listen(8190);//一旦app对象作为http createServer方法的参数req和res就分别代表http的请求和响应
- 再起一个文件(apphandler.js)
G={}; var url= require('url'); var app = function (req,res) { var urlobj = url.parse(req.url); var pathname = urlobj.pathname; res.writeHead(200,{'Content-Type':'text/html;charset=UTF-8'}); console.log("pathname: "+pathname); if (G[pathname]) { G[pathname](req,res); } else { G['/'](req,res); } }; app.get=function (urlinstring,callback) { G[urlinstring]=callback; }; app.get('/login',function (req,res) { res.write("这是login方法用到的参数req的值:"+req); res.end('this is a module for login'); }); app.get('/',function (req,res) { var pathname=url.parse(req.url).pathname; res.end("这是首页"); //console.log('this is a module for login'); }); /* setTimeout(function (){ app("嘿~人参娃哟~,嘿真机灵","人参王国片头曲"); },3000);*/ module.exports=app;
输出结果: