node.js根据不同的请求路径返回不同的数据
Posted 勇敢*牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node.js根据不同的请求路径返回不同的数据相关的知识,希望对你有一定的参考价值。
node.js根据不同的请求路径返回不同的数据
总结
node.js是什么?
javascript运行时
既不是语言,也不是框架,他是一个平台
node.js中的JavaScript没有DOM。没有BOM。
EcmaScript基本的JavaScript语言部分
在node中为JavaScript提供了服务器级别的API
- 文件操作能力
- http服务能力
node.js根据不同的请求路径返回不同的数据
var http = require('http');
// 1、创建server
var server = http.createServer();
// 2、监听request请求事件,设置请求处理函数
server.on('request',function(req,res)
// console.log("收到请求了,请求的路径是"+req.url);
//有一种简单的写法是。直接使用end,响应的同时给结束掉
res.end("hello world"+req.url);
)
//绑定端口号,启动服务器
server.listen(3000,function()
console.log("服务器启动成功,可以访问了。。。。");
)
发生了一个神奇的现象
给网页反馈信息时我写了两种写法
第一种:
if(request.url=='/')
response.write("index");
response.end();
// response.end("index");
if(request.url=='/login')
response.write("log in qq");
response.end();
// response.end("log in qq");
else
response.write("404 NOT FOUND");
response.end();
// response.end("404 NOT FOUND");
经过我艰苦排查,逐行比对。发现if_1和if_2两个并列且不给任何一个if添加else,虽然交互太生硬但不报错,顶多访问错误路径会一直去请求。
但是给任何一个添加了else,访问对的路径是没问题,但是随便访问个错的路径,他就会失去整个访问权限。 虽然不知道为什么,但是我排错后又有一种写法。这就是所谓的代码经验吧。
也是吃了没经验的亏,报的错是:Error [ERR_STREAM_WRITE_AFTER_END]: write after end
:错误[ERR_STREAM_WRITE_AFTER_END]:结束后写入
,表示不是太理解。
第二种写法
var http = require('http');
// 1、创建server
var server = http.createServer();
// 2、监听request请求事件,设置请求处理函数
server.on('request',function(req,res)
// console.log("收到请求了,请求的路径是"+req.url);
//有一种简单的写法是。直接使用end,响应的同时给结束掉
// res.end("hello world"+req.url);
if(req.url==='/')//全等符
res.end("index page");
else if(req.url==='/login')
res.end("login page");
else
res.end("404 NOT Found");
)
//3、绑定端口号,启动服务器
server.listen(3000,function()
console.log("服务器启动成功,可以访问了。。。。");
)
整个请求if串在一起,逻辑上和第一种是一样(稍稍的差别)的呀
这样就符合我的预期,错误路径返回信息,但是任然可以访问。。。
访问的类型必须是字符串,数字都不行
代码描述:
var http = require('http');
const json = require('stream/consumers');
// 1、创建server
var server = http.createServer();
// 2、监听request请求事件,设置请求处理函数
server.on('request',function(req,res)
//假如有一个数组,从网页端请求出去
if(req.url==='/products')
var products = [
name:"苹果 x",
price:8888
,
name:"香蕉 x",
price:6666
,
name:"菠萝 x",
price:1999
]
res.end(JSON.stringify(products));
)
//3、绑定端口号,启动服务器
server.listen(3000,function()
console.log("服务器启动成功,可以访问了。。。。");
)
以上是关于node.js根据不同的请求路径返回不同的数据的主要内容,如果未能解决你的问题,请参考以下文章