http + nodeJs 获取未知对象的key值

前言

有时我们访问网址的时候会携带一些参数,难免要考虑一下这些参数如果存在未知对象怎么办。接下来,我们就简单的了解一下Object.keys()

步骤

1、首先搭建一个服务端,用来接收http请求。
2、网址以 http://localhost:8080/setValue?&value=0 为例进行访问。
3、上述中的 “?value=0” 是可以随意改变的,就是我们要说的未知对象内容。

一、搭建简易服务端

提示: 服务端使用nodejs编程,npm所需的模块,不了解的话,可以先阅读 NodeJs 的简单搭建与应用了解一下,很简单的。
1、我们把下面这段代码写在 server.js 文件中

//  先引用一些所需模块
var http = require('http')
var express = require("express")
var router = express.Router()
var app = express()
app.use("/", router)

// 设置路由
router.get("/setValue", function(req, res, next){
	// 通过 Object.keys 获取未知 key,并在服务端打印
	console.log( Object.keys(req.query))
})

//  设置端口号
var port = normalizePort(process.env.PORT || '8080')
app.set('port', port)

// 创建 server 用于监听
var server = http.createServer(app)
server.listen(port)

2、以上代码完成之后,我们执行 server.js 文件,直接终端 cd 到该文件路径下,输入 node server.js 即可执行。

二、网址访问

1、 访问 http://localhost:8080/setValue,不携带参数,打印结果如下:
   [ ]

2、 访问 http://localhost:8080/setValue?&value=1,打印结果如下:
   [ ‘value’ ]

3、 访问 http://localhost:8080/setValue?&value=1&address=2,打印结果如下:
   [ ‘value’, ‘address’ ]

4、 访问 http://localhost:8080/setValue?&ip=1&port=2&id=5,打印结果如下:
   [ ‘ip’, ‘port’, ‘id’ ]

三、拓展

如果想直接返回获取到的结果,那么我们只需将第一部分中的“设置路由”改一下即可,如下

router.get("/setValue", function(req, res, next){
	// 通过 Object.keys 获取未知 key,并在服务端打印
	console.log( Object.keys(req.query))

	// 我们以返回第一个 key-value 为例
	var value = req.query[keys[0]]
	
	// 简单处理一下 value 
	value = value || {key:null}
	
	// 返回
	res.send(value)
})

这样,我们在网页上就可以看到value了。
如果你想进一步的了解和学习,可以参考 服务端同时响应http和https请求 文章,更详细的讲述了如何在客户端通过代码访问服务端,希望对你有些帮助。

后语

经过上述介绍,是不是已经了解了获取key值的基本方式了,有了key,我们就不怕拿不到value。哪怕访问网址时填写的参数不符合要求,我们也可以做出相应的处理,这岂不是很好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值