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

    技术2022-07-11  120

    前言

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

    Processed: 0.021, SQL: 9