美文网首页
Node.js-路由

Node.js-路由

作者: 薥劃 | 来源:发表于2020-02-24 11:16 被阅读0次

为什么要使用路由

我们使用Node.js的http服务的时候,需要针对不能的Url和不同的方法(Get,Post,等)去做不同的对应,所以我们在接受到请求的时候需要利用路由功能来扩展我们的程序。

http服务

首先我们利用http,来构建我们自己的服务,创建server.js,代码如下:

var http = require("http");
var url = require("url");
 
function start() {
  function onRequest(request, response) {
    var pathname = url.parse(request.url).pathname;
    console.log("Request for " + pathname + " received.");
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
  }
 
  http.createServer(onRequest).listen(8888);
  console.log("Server has started.");
}
 
exports.start = start;

start();

此时我们已经创建了一个http服务


微信截图_20200224110919.png

路由

那么要如何利用路由来去区分Url和方法呢?建立一个名为 router.js 的文件,添加以下内容

function route(pathname) {
    console.log("About to route a request for " + pathname);
  }
   
  exports.route = route;

我们创建了一个路由,输出了一个log,除此之外什么都没有操作。接着,我们去完善我们的服务。将路由函数作为参数传递过去,server.js 文件代码如下

var http = require("http");
var url = require("url");
 
function start(route) {
  function onRequest(request, response) {
    var pathname = url.parse(request.url).pathname;
    console.log("Request for " + pathname + " received.");
 
    route(pathname);
 
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
  }
 
  http.createServer(onRequest).listen(8888);
  console.log("Server has started.");
}
 
exports.start = start;

创建 index.js,使得路由函数可以被注入到服务器中

var server = require("./server");
var router = require("./router");
 
server.start(router.route);

输出如下

Server has started.
Request for / received.
About to route a request for /
Request for /favicon.ico received.
About to route a request for /favicon.ico

相关文章

  • Node.js-路由

    为什么要使用路由 我们使用Node.js的http服务的时候,需要针对不能的Url和不同的方法(Get,Post,...

  • Electron开发 —— 配置环境

    工欲善其事必先利其器 前序: Electron-官网 Node.js-官网 (本文当前版本 v8.11.3,nod...

  • Node.js-事件

  • Node.js-安装

    安装下载地址 node.js 前端开发下载安装软件用的,npm install [插件名] 淘宝镜像cnpm安装 ...

  • 学习Node.js- 【0】

    1.是Node.js 不是node.js 也不是Node.JS 2.文档 http://nodejs.cn/api...

  • Node.js-事件循环

    JavaScript是单线程 JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。作为...

  • thinkphp5学习笔记(三)路由配置

    URL请求的执行流程 路由模式 路由注册 路由规则 路由地址 路由参数 变量规则 路由分组 别名路由 路由绑定

  • larevel 路由索引

    基本路由:路由重定向、视图路由路由参数:必选、可选、正则表达式命名路由路由组:中间件、命名空间、子域名路由、路由前...

  • Node.js-学习笔记1

    1. 第一步, 在电脑上安装node 可以在官网上下安装包或者用命令去安装, 百度一下 你就知道. 2. 创建第一...

  • Node.js-模块系统&函数

    为什么增加模块化 为了解决恼人的命名冲突和繁琐的文件依赖 创建模块 在 Node.js 中,创建一个模块非常简单,...

网友评论

      本文标题:Node.js-路由

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