轻松创建nodejs服务器(4):路由

 更新时间:2014年12月18日 09:57:05   投稿:junjie  
这篇文章主要介绍了轻松创建nodejs服务器(4):路由,服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤,需要的朋友可以参考下

服务器需要根据不同的URL或请求来执行不一样的操作,我们可以通过路由来实现这个步骤。

第一步我们需要先解析出请求URL的路径,我们引入url模块。

我们来给onRequest()函数加上一些逻辑,用来找出浏览器请求的URL路径:

复制代码 代码如下:

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;

好了,pathname就是请求的路径,我们可以用它来区别不同请求了,这样一来我们就可以对来自/start和/upload的请求使用不同的代码来处理。

接着我们来编写路由,建立一个名为router.js的文件,代码如下:

复制代码 代码如下:

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

这段代码什么都没干,我们先把路由和服务器整合起来。

我们接着扩展服务器的start()函数,在start()中运行路由函数,并将pathname作为参数传给它。

复制代码 代码如下:

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);

运行index.js,随便访问个路径,比如/upload,就会发现控制台输出,About to route a request for /upload.

这就意味着我们的HTTP服务器和请求路由模块已经可以相互交流了。

下一节我们将实现针对不同的URL请求给予不同的反馈。

相关文章

  • 利用Decorator如何控制Koa路由详解

    利用Decorator如何控制Koa路由详解

    最近学习了plover的底层框架koa,所以下面这篇文章主要给大家介绍了关于利用Decorator如何控制Koa路由的相关资料,,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来随着小编一起学习学习吧
    2018-06-06
  • node.js利用redis数据库缓存数据的方法

    node.js利用redis数据库缓存数据的方法

    Redis数据库采用极简的设计思想,最新版的源码包还不到2Mb。其在使用上也有别于一般的数据库。下面这篇文章就来给大家介绍了node.js利用redis数据库缓存数据的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03
  • Node.js实现解析post请求的方法详解

    Node.js实现解析post请求的方法详解

    这篇文章主要为大家详细介绍了Node.js实现解析post请求方法的相关知识,文中的示例代码讲解详细,具有一定的学习价值,有需要的小伙伴可以了解下
    2024-04-04
  • nodejs实现一个word文档解析器思路详解

    nodejs实现一个word文档解析器思路详解

    这篇文章主要介绍了nodejs实现一个word文档解析器的思路详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • Node.js 利用cheerio制作简单的网页爬虫示例

    Node.js 利用cheerio制作简单的网页爬虫示例

    本篇文章主要介绍了Node.js 利用cheerio制作简单的网页爬虫示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Node.js中fs模块实现配置文件的读写操作

    Node.js中fs模块实现配置文件的读写操作

    在Node.js中, fs模块提供了对文件系统的访问功能,我们可以利用它来实现配置文件的读取和写入操作,这篇文章主要介绍了Node.js中fs模块实现配置文件的读写,需要的朋友可以参考下
    2024-04-04
  • Node.js的MongoDB驱动Mongoose基本使用教程

    Node.js的MongoDB驱动Mongoose基本使用教程

    这篇文章主要介绍了Node.js的MongoDB驱动Mongoose的基本使用教程,前端js+后端Node.js+数据库MongoDB是当下流行的JavaScript全栈开发方案,需要的朋友可以参考下
    2016-03-03
  • 在nodejs中创建child process的方法

    在nodejs中创建child process的方法

    这篇文章主要介绍了在nodejs中创建child process的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • node.js中的fs.writeFile方法使用说明

    node.js中的fs.writeFile方法使用说明

    这篇文章主要介绍了node.js中的fs.writeFile方法使用说明,本文介绍了fs.writeFile的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • Node.js中创建和管理外部进程详解

    Node.js中创建和管理外部进程详解

    这篇文章主要介绍了Node.js中创建和管理外部进程详解,本文讲解了执行外部命令的方法、子进程相关内容等,需要的朋友可以参考下
    2014-08-08

最新评论