轻松创建nodejs服务器(6):作出响应


Posted in NodeJs onDecember 18, 2014

我们接着改造服务器,让请求处理程序能够返回一些有意义的信息。

我们来看看如何实现它:

1、让请求处理程序通过onRequest函数直接返回(return())他们要展示给用户的信息。
2、让我们从让请求处理程序返回需要在浏览器中显示的信息开始。

我们需要将requestHandler.js修改为如下形式:

function start() {

  console.log("Request handler 'start' was called.");

  return "Hello Start";

}

function upload() {

  console.log("Request handler 'upload' was called.");

  return "Hello Upload";

}

exports.start = start;

exports.upload = upload;

同样的,请求路由需要将请求处理程序返回给它的信息返回给服务器。
因此,我们需要将router.js修改为如下形式:

function route(handle, pathname) {

  console.log("About to route a request for " + pathname);

  if (typeof handle[pathname] === 'function') {

 return handle[pathname]();

  } else {

 console.log("No request handler found for " + pathname);

 return "404 Not found";

  }

}

 

exports.route=route;

正如上述代码所示,当请求无法路由的时候,我们也返回了一些相关的错误信息。
最后,我们需要对我们的server.js进行重构以使得它能够将请求处理程序通过请求路由返回的内容响应给浏览器,如下所示:

var http = require("http");

var url = require("url");

function start(route, handle) {

  function onRequest(request, response) {

 var pathname = url.parse(request.url).pathname;

 console.log("Request for " + pathname + " received.");

 response.writeHead(200, {"Content-Type": "text/plain"});

 var content = route(handle, pathname);

 response.write(content);

 response.end();

  }

  http.createServer(onRequest).listen(8888);

  console.log("Server has started.");

}

exports.start=start;

如果我们运行重构后的应用:

请求http://localhost:8888/start,浏览器会输出“Hello Start”,
请求http://localhost:8888/upload会输出“Hello Upload”,
而请求http://localhost:8888/foo 会输出“404 Not found”。

这感觉不错,下一节我们要来了解一个概念:阻塞操作。

NodeJs 相关文章推荐
Nodejs极简入门教程(二):定时器
Oct 25 NodeJs
nodejs教程之制作一个简单的文章发布系统
Nov 21 NodeJs
nodejs 的 session 简单使用
Jun 06 NodeJs
Nodejs基于LRU算法实现的缓存处理操作示例
Mar 17 NodeJs
基于nodejs 的多页面爬虫实例代码
May 31 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
Nodejs下使用gm圆形裁剪并合成图片的示例
Feb 22 NodeJs
NodeJs搭建本地服务器之使用手机访问的实例讲解
May 12 NodeJs
基于Nodejs的Tcp封包和解包的理解
Sep 19 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
分享node.js实现简单登录注册的具体代码
Apr 26 NodeJs
轻松创建nodejs服务器(5):事件处理程序
Dec 18 #NodeJs
轻松创建nodejs服务器(4):路由
Dec 18 #NodeJs
轻松创建nodejs服务器(3):代码模块化
Dec 18 #NodeJs
轻松创建nodejs服务器(2):nodejs服务器的构成分析
Dec 18 #NodeJs
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
Dec 18 #NodeJs
Nodejs实现多人同时在线移动鼠标的小游戏分享
Dec 06 #NodeJs
Nodejs实现的一个静态服务器实例
Dec 06 #NodeJs
You might like
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
2016/04/04 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
php禁用函数设置及查看方法详解
2016/07/25 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
php实现JWT(json web token)鉴权实例详解
2019/11/05 PHP
date.parse在IE和FF中的区别
2010/07/29 Javascript
js使用心得分享
2015/01/13 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
vue-cli构建项目下使用微信分享功能
2018/05/28 Javascript
在iFrame子页面里实现模态框的方法
2018/08/17 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
python搭建简易服务器分析与实现
2012/12/15 Python
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
对python For 循环的三种遍历方式解析
2019/02/01 Python
Python常用的json标准库
2019/02/19 Python
Python基础之循环语句用法示例【for、while循环】
2019/03/23 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
python异常触发及自定义异常类解析
2019/08/06 Python
python zip()函数使用方法解析
2019/10/31 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
汽车检测与维修专业求职信
2013/10/30 职场文书
网上书店创业计划书
2014/01/12 职场文书
辅导员评语
2014/05/04 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
Win11 S Mode版本泄露 正式上线后叫做Windows 11 SE
2021/11/21 数码科技
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python