轻松创建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写的一个简单项目打包工具
May 11 NodeJs
Nodejs Post请求报socket hang up错误的解决办法
Sep 25 NodeJs
轻松创建nodejs服务器(5):事件处理程序
Dec 18 NodeJs
NodeJS Web应用监听sock文件实例
Feb 18 NodeJs
nodeJS删除文件方法示例
Dec 25 NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 NodeJs
nodejs个人博客开发第三步 载入页面
Apr 12 NodeJs
nodejs和C语言插入mysql数据库乱码问题的解决方法
Apr 14 NodeJs
NodeJs模拟登陆正方教务
Apr 28 NodeJs
理解nodejs的stream和pipe机制的原理和实现
Aug 12 NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 NodeJs
使用nodejs实现JSON文件自动转Excel的工具(推荐)
Jun 24 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
windows下安装php的memcache模块的方法
2015/04/07 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
使用laravel指定日志文件记录任意日志
2019/10/17 PHP
Nigma vs Liquid BO3 第一场2.14
2021/03/10 DOTA
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
DOM基础教程之使用DOM + Css
2015/01/20 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
2016/06/17 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
python梯度下降算法的实现
2020/02/24 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
Numpy中np.max的用法及np.maximum区别
2020/11/27 Python
python+selenium自动化实战携带cookies模拟登陆微博
2021/01/19 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
大学生毕业求职的自我评价
2013/09/29 职场文书
车工岗位职责
2013/11/26 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
社区党员先进事迹
2014/01/22 职场文书
品质口号大全
2014/06/17 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
行政复议答复书
2015/07/01 职场文书
2016年万圣节活动总结
2016/04/05 职场文书
SQL Server连接查询的实用教程
2021/04/07 SQL Server