• 用node写的一个后台框架


    server.js

    var http=require('http')
    var handleUrl=require('./handleUrl')
    var config = require('./config');
    http.createServer(function(req,res){
        res.writeHead(200, {
            'Content-Type': 'text/plain',
            'Content-Type':'text/html; charset=utf-8'
        });
        res.write(handleUrl(req.url)+"")
        res.end();
    }).listen(config.port)
    

      handleUrl.js

    var config=require('./config')
    var  fs=require('fs')
    var path=require('path')
    const { URL } = require('url');
    const querystring = require('querystring');
    
    module.exports=function(url){
        //判断请求的路径中有没有api
        if(url.indexOf(config.ApiSuffix)>-1){
            return parseUrl(url)
        }else{
            return parseStaticUrl(url)
        }
    }
    //静态资源请求路径处理
    function  parseStaticUrl(url){
        if(url.indexOf('favicon.ico')<=-1){
            var urlObj=require('url').parse(url)
            var pathname=urlObj.pathname;
            var filepath=path.resolve(config.staticFile+pathname);//获取文件的绝对地址
            return fs.readFileSync(filepath).toString('utf8');
        }
    }
    //api请求路径处理
    function  parseUrl(url){
        if(url.indexOf('favicon.ico')<=-1){
            var urlObj=require('url').parse(url)
            var pathname=urlObj.pathname;
            var reg=new RegExp("/(\w+)\"+config.ApiSuffix+"$");
            var funame=pathname.match(reg)[1];//获取要执行的方法名
            var filepath=path.resolve(pathname.substr(1,pathname.lastIndexOf("/")-1)+".js");//获取文件的绝对地址
            var param=querystring.parse(urlObj.query)//把参数解析成对象
            var targetfile=require(filepath);
            return targetfile[funame](param)
        }
    }
    

      config.js

    module.exports={
        ApiSuffix:'.do',//api请求后缀
        staticFile:'./static',//存放静态资源的文件夹路径
        port:9999//端口号
    }
    

      controller/user.js

    module.exports={
        name : 8888888888888,
        addUser : function(obj){
            return  "您要增加的用户名字是"+obj.name+"";
        }
    }
    

      

    api访问举例  http://localhost:9999/controller/user/addUser.do?name=5555

    返回的结果是   

    您要增加的用户名字是5555
  • 相关阅读:
    linux清理缓存
    HTMl5的sessionStorage和localStorage
    jQueryValidation插件API 学习
    notepad++去空格空行技巧
    关于前端的一些疑问
    ios上传图片遇见了一个TimeoutError(DOM Exception 23)异常
    js不执行的问题
    input type=file 怎么样调取用户手机照相机
    在调用方法给安卓传参遇到的问题
    canvas压缩图片成base64,传到后台解码需要注意的问题
  • 原文地址:https://www.cnblogs.com/liuhao-web/p/7169024.html
Copyright © 2020-2023  润新知