zoukankan      html  css  js  c++  java
  • 用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
  • 相关阅读:
    ajax请求或者页面需要缓存,代码如下
    jquery cookie 删除不了的处理办法
    大家来找茬-SpringMVC中Tomcat正常启动,始终访问不了Controller,出404错
    简单的批量读取外部insert文并插入DB
    关于Jquery.validate.js中动态删除验证remove方法的Bug
    Struts2.3.16.3 基本9个jar包
    CAS SSL证书错误处理
    cas 4.X单点登录实战
    如何高效利用时间
    ubuntu16.04 Detectron目标检测库配置(包含GPU驱动,Cuda,Caffee2等配置梳理)
  • 原文地址:https://www.cnblogs.com/liuhao-web/p/7169024.html
Copyright © 2011-2022 走看看