Node.js建立服务、路径处理与响应

时间:2022-09-24 16:03:21

通过Node.js创建一个web服务器,要写的代码可能不是最少的,但是一定是最容易理解的。

用6行代码创建的web服务器

当在浏览器中访问http://127.0.0.1:1337会看到自定义的字样

Node.js建立服务、路径处理与响应

Node.js建立服务、路径处理与响应

Node.js

 var http=require('http');//require引用内置模块http

 http.createServer(function(req,res){
res.writeHead(,{'Content-Type':'text/path'});//设置头信息
res.end("Welcome to perfect* the blog park!!!\n");//输出内容 }).listen(,'127.0.0.1');//绑定IP和端口 console.log('server running at http://127.0.0.1:1337');//控制台输出显示

在第三行中的createServer方法支持一个callback的回调函数,这个函数是web服务器主要的处理函数,程序员在这里做各种常见业务的处理和控制,在本例子中只是响应一个文档头Content-Type,并输出指定的字样,在第7行是链式的写法,通过调用一个一个listen方法,将处理的代码绑定本机IP的1337端口上。在网络上的默认的端口是80,最后在控制台上输出一段提示信息

Node.js建立服务、路径处理与响应

现在web服务已经建立,只需要关闭CMD窗口或是直接按Ctrl+c快捷键即可停止web服务器

让web服务器响应和处理不同路径

观察上面的例子我们可以发现构建的Web服务器无论该网址后面的路径和参数是什么,只要IP和端口是正确的,它始终只会做出一个反应---显示自定义的字样;由此这样的服务器有什么用呢?就没有一点使用价值。一个正常的网站,即使是一个纯静态的网站,都会有不同的路径。因此现在就实现比如首页显示自定义的字样,其它的页面就显示请求的网址。

使用node server_01启动如下例子,然后再浏览器中输入localhost:9527和localhost:9527/other  可以看到期望的效果:

Node.js建立服务、路径处理与响应

Node.js建立服务、路径处理与响应

Node.js建立服务、路径处理与响应

  var http = require('http'); //require引用内置模块http
var url = require('url'); //require引用内置模块url
http.createServer(function (req, res) {
res.writeHead(, {'Content-Type': 'text/plain'}); //设置头信息
var pathname = url.parse(req.url).pathname; //把请求网址交给url对象处理
var bodyStr =""; //定义一个变量用来存储要输出的内容
if(pathname==="/"){ //如果是首页
bodyStr = 'Welcome to perfect* the blog park!!!\n';
}else{
bodyStr = req.url; //如果是其他路径
}
res.end(bodyStr); //输出内容
}).listen(, '127.0.0.1'); //绑定IP和端口
console.log('Server running at http://127.0.0.1:9527/');//控制台输出提示

再改变一下用户的需求,首先显示不变,增加一个/about关于页面,显示一些联系信息,其它的页面就提示404 not found.随着请求的路径的增长,用if判断的方式对代码阻止,很不友好,下面使用对象就行修改代码:

Node.js建立服务、路径处理与响应

Node.js建立服务、路径处理与响应

 var http=require('http');//require引用内置模块http
var url=require('url');//require引用内置模块url var webPath={//许可的路径 "/":"Welcome to perfect* the blog park!!!\n",
"/about":"ID:01\nname:perfect*",
} http.createServer(function(req,res){ res.writeHead(,{'Content-Type':'text/plain'});//设置头信息
var pathname=url.parse(req.url).pathname;//把请求的网址交给url对象进行处理
var bodyStr=webPath[pathname]||"Not found!\n "+req.url+"was not found this server";//如果访问路径没有被webPath指定就是Notfound res.end(bodyStr);//输出内容 }).listen(,'127.0.0.1');//绑定IP和端口 console.log('server running at http://127.0.0.1:1339');//控制台输出显示

Node.js建立服务、路径处理与响应的更多相关文章

  1. 利用OpenShift托管Node.js Web服务进行微信公众号开发

    最近写了一个微信的翻译机器人.用户只要关注该公众号,发送英文的消息,就能收到中文翻译的回复.有兴趣的读者可以扫描下面的二维码关注该公众号,尝试发送英文单词试试看.(有时候第一次发送单词会收到“该公众号 ...

  2. Node.js文件系统、路径的操作详解

    17173 17173 2 75 2014-12-12T05:06:00Z 2014-12-12T05:06:00Z 21 2735 15595 www.17173.com 129 36 18294 ...

  3. Node.js文件系统、路径的操作函数

    Node.js文件系统.路径的操作函数 目录 Node.js文件系统.路径的操作函数 1.读取文件readFile函数 2.写文件 3.以追加方式写文件 4.打开文件 5.读文件,读取打开的文件内容到 ...

  4. node.js中path路径模块的使用

    path模块是node.js中处理路径的核心模块.可以很方便的处理关于文件路径的问题. join() 将多个参数值合并成一个路径 const path = require('path'); conso ...

  5. 个推Node.js 微服务实践:基于容器的一站式命令行工具链

    作者:个推Node.js 开发工程师 之诺 背景与摘要 由于工程数量的快速增长,个推在实践基于 Node.js 的微服务开发的过程中,遇到了如下问题: 1. 每次新建项目都需要安装一次依赖,这些依赖之 ...

  6. 学习用node.js建立一个简单的web服务器

    一.建立简单的Web服务器涉及到Node.js的一些基本知识点: 1.请求模块 在Node.js中,系统提供了许多有用的模块(当然你也可以用JavaScript编写自己的模块,以后的章节我们将详细讲解 ...

  7. Node.js微服务实践(一)

    什么是微服务 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任务.在所有情况下 ...

  8. 在用 Node.js 起服务之前,我们应该知道这些

    网络分层 了解计算机网络的同学都知道 OSI 七层网络模型和 TCP/IP 模型.OSI 七层模型是理论上的网络通信模型,而 TCP/IP 是现实中的网络通信概念模型.它们之间的对比关系参考下图. 本 ...

  9. node.js建立简单应用

    1. 建立工程 进入工程目录 cd D:\workspace\project 全局安装express,express作为命令被安装到了系统中 npm install -g express 查看expr ...

随机推荐

  1. Win7系统修改hosts文件不能保存的解决方法

    地址:http://jingyan.baidu.com/album/e5c39bf56564a539d7603312.html

  2. C语言-06-复杂数据类型

    一.数组 1> 数组的定义和初始化 定义 ① 数组定义了同种类型数据的集合 ② 定义数组时,数组必须有固定的长度 初始化 ① 如果在定义数组时,初始化数组,数组元素的个数必须是常量 ② 如果不在 ...

  3. IIS6的session丢失问题

    解决办法:      a IIS6中相比IIS5增加了一个应用程序池,默认是使用DefaultAppPool.      b   先为站点建立一个应用程序池,打开IIS管理器,右键点击应用程序池-新建 ...

  4. SQL 无限级分类语句

    原文:SQL 无限级分类语句 原表数据为: 此处用到了with关键字,在程序中也可以用递归实现,但觉得还是没有一条sql方便 with tb (ID,Name,ParentID,Sort) as( s ...

  5. 【Jhipster】升级/修改 数据库结构

    前提 1.jhipster环境,jdk1.8,yeoman,node.js安装环境参考官方wiki,环境问题参考我的博客,如果出现注册中心空白页,请参考博客 2.首先需要启动jhipster基础服务, ...

  6. 数据准备<3>:数据预处理

    数据预处理是指因为算法或者分析需要,对经过数据质量检查后的数据进行转换.衍生.规约等操作的过程.整个数据预处理工作主要包括五个方面内容:简单函数变换.标准化.衍生虚拟变量.离散化.降维.本文将作展开介 ...

  7. MATLAB最小二乘法

    MATLAB最小二乘法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 四.实验内容 设有如下数据: 用3次多项式拟合这组数据. 五.解答( ...

  8. 第五章 大数据平台与技术第11讲 MapReduce编程

    在大规模的数据当中,需要分发任务,需要进行分布式的并行编程.Hadoop这样一种开源的大数据分析平台. Map阶段 Reduce阶段:相同的键把它聚集到一起之后,然后通过Reduce方式把相同的键聚集 ...

  9. Android学习笔记_70_一个应用程序启动另一个应用程序的Activity

    第一种(我自己写的) :之前在网上看来一些,很多不是我要的可以启动另外一个应用程序的主Activity. //这些代码是启动另外的一个应用程序的主Activity,当然也可以启动任意一个Activit ...

  10. jvm gc日志解读

    参考 https://blog.csdn.net/yxc135/article/details/12137663 认识gc日志每个位置的含义 java 8 full gc [Full GC (Meta ...