• node.js中允许的app对象声明方式


    • 伪对象形式
    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;

    输出结果:

     

  • 相关阅读:
    QProgressBar的使用例子
    kube框架结构-一个小型响应式CSS框架
    窗口类型(Widget, Window, Dialog, Desktop, SubWindow等等)
    Qt 之 设置窗口边框的圆角(使用QSS和PaintEvent两种方法)
    十大开源游戏引擎深入比较
    一种通用查询语言的定义与实践
    EF分页问题探讨之 OrderBy
    手把手教你做关键词匹配项目
    git
    Extension+NVelocity
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/11914442.html
Copyright © 2020-2023  润新知