美文网首页
nodejs http模块注册路由的实现

nodejs http模块注册路由的实现

作者: 周周周__ | 来源:发表于2020-03-21 22:00 被阅读0次

node的基本http库,是没有路由的功能的,基本测试get和post就不说了。实现注册路由的功能。
一、server.js

var http = require('http');
var url =require('url');  //url和http都是node.js模块
function start(route,handle) {  //route是路由模块,handler是注册的路由的字典
    function onRequest(request,response) {
        var pathname = url.parse(request.url).pathname;//pathname是请求的路径
        route(handle,pathname,request,response);  //将这些参数传递给route
    }
    http.createServer(onRequest).listen(80);
    console.log('server running at 80');
}
exports.start = start;

二、route.js

//路由文件
function route(handle,pathname,request,response) {
  if (typeof handle[pathname] ==='function') {   // 判断注册的路由字典对象中是否有这个函数
      return handle[pathname](request,response);
  }else{
      console.log('no request'+pathname);
      return 'NOT found';
  }
}
exports.route = route;

三、requestHandlers.js

//处理请求
function start(request,response) {
    console.log('do start');
    // return "start";
        response.writeHead(200,{'Content-Type':'text/plain'});
        response.write('start is running');
        response.end();
}
function upload(request,response) {
    console.log('do upload');
    response.writeHead(200,{'Content-Type':'text/plain'});
    response.write('upload is running');
    response.end();
}
exports.start = start;
exports.upload = upload;

四、index.js

var server = require('./server');
var router =require('./router');
var requestHandlers = require('./requestHandlers');

var handle = {};  // 创建一个空对象,下边是注册路由
handle['/start'] = requestHandlers.start,
handle['/upload'] = requestHandlers.upload;

server.start(router.route,handle); //启动server,同时将路由模块和上边注册的路由对象传进去

相关文章

  • nodejs http模块注册路由的实现

    node的基本http库,是没有路由的功能的,基本测试get和post就不说了。实现注册路由的功能。一、serve...

  • nodejs静态资源服务器

    nodejs静态资源服务器 1、http 是nodejs的服务模块 2、url 是url路由模块 3、fs 是文件...

  • node学习4

    Nodejs 路由模块封装、封装仿照 express 的路由 Nodejs 路由模块封装 封装仿照 express...

  • nodejs静态资源服务器

    缩写含义 http是nodejs的服务模块 url是url路由模块 fs是文件服务器模块 nodejs服务器的创建...

  • nodejs模块

    nodejs模块 nodejs系统自带的模块:http:协议请求模块;创建服务器:http.createServe...

  • 手写一个后端服务器

    一、nodejs写服务器 var http = require('http') //是nodejs的内置模块 - ...

  • Express的http->https

    通过采用路由实现访问http的时候 自动跳转到https模块 https://stackoverflow.com/...

  • nodejs03-commonjs

    CommonJs CommonJs是模块化的标准,nodejs是模块化的实现 nodejs模块 核心模块(node...

  • nodejs复习大纲

    nodejs复习 模块http 服务 let http = require('http'); http.cre...

  • nodejs http模块

    创建一个模块 监听请求 启动http服务器监听连接 设置响应内容 获取请求体:监听request的data事件,c...

网友评论

      本文标题:nodejs http模块注册路由的实现

      本文链接:https://www.haomeiwen.com/subject/atcpyhtx.html