node ---- 根据不同的路径返回不同的数据

上一节笔记中,request事件是所有请求都会触发的,并不能做到针对特定的请求响应不同的数据。
如果要根据不同请求路径返回不同数据:
1、对request.url进行判断

// 加载 http 核心模块
var http = require('http');
//1. 使用 http.createServer() 方法创建一个 web 服务器
var server = http.createServer();
//2. 监听 request 请求事件,设置请求处理函数
server.on('request',function(req,res){
     console.log('收到了客户端的请求,请求路径是:' + req.url);
})
//3. 绑定端口号,启动服务器
server.listen(3000,function(){
    console.log('服务器启动成功了,可以通过访问了。。。。');
})

可以正常运行
在这里插入图片描述

server.on('request',function(req,res){
    res.write('hello')
    res.write(' node.js')
    res.end();
})

在这里插入图片描述
上面的方式比较麻烦,推荐使用更加简单的方法,直接 end 的同时发送响应数据。

server.on('request',function(req,res){
    res.end('hello node.js');
})

可以根据不同的请求路径发送不同的响应结果。

server.on('request',function(req,res){
    var url = req.url;
    res.end(url)
})

拿到输入的路径,当输入什么时,就会显示什么
在这里插入图片描述
req.url 获取到的是端口号之后的那一部分路径,也就是说,所有的 url 都是已 / 开头的。
接下来,对传入的不同数据,判断返回不同的结果。
server.on(‘request’,function(req,res){

server.on('request',function(req,res){
    var url = req.url;
   if(url === '/'){
      res.end('index page');
   }else if(url ==='/login'){
      res.end('login page');
   }else{
      res.end('Not Found');
   }
})

在这里插入图片描述
当输入 /login
在这里插入图片描述
当输入的数不在判断条件时
在这里插入图片描述
创建一个数组,让其打印出数据:

server.on('request',function(req,res){
    var url = req.url;
    if(url === '/produs'){
	        var prous = [
			            {
			                name : '苹果 X',
			                price : 4500
			            },
			            {
			                name : '华为 P40',
			                price : 5000
			            },
			            {
			                name : '苹果11 pro',
			                price : 9888
			            }
	        ]
	         res.end(123); //会报错
    }
})

会报错;响应的内容只能是二进制数据或者是字符串 例如: 数字,对象,数组,布尔值。
在这里插入图片描述
所有得变成 json 数据的格式

 res.end(JSON.stringify(prous));

在这里插入图片描述
这样就能正常的输出数据了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值