前言
有时我们访问网址的时候会携带一些参数,难免要考虑一下这些参数如果存在未知对象怎么办。接下来,我们就简单的了解一下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。哪怕访问网址时填写的参数不符合要求,我们也可以做出相应的处理,这岂不是很好。