javascript - 如何处理查询中的数组值?

标签 javascript node.js api url

我有一个 url,它采用这样的 topicName 查询数组

localhost:3000/api/?topicName=mobile&topicName=网站

有时 topicName 只有一个这样的值

localhost:3000/api/?topicName=mobile

下面是我如何在 Node JS 中使用该查询值

let topicNameArray = [];
topicNameArray = req.query.topicName
let value = topicNameArray.map(function(e) {
return new RegExp(e, "i");
})

我面临的问题是当数组查询只有一个值时,我的应用程序将收到此消息

"message": "topicNameArray.map is not a function

有人可以建议我解决这个问题吗?非常感谢!

最佳答案

我相信您需要修改查询字符串以减轻您遇到的错误。

目前我认为您有一个如下查询字符串:localhost:3000/api/?topicName=mobile&topicName=website 这里您有一个查询参数topicName,这是本质上是一个字符串。因此,当您的查询字符串中有多个 topicName 键实例时,您应该将该键的值替换为查询字符串中的最后一个实例。因此,要发送值数组,请使用如下查询字符串结构: localhost:3000/api/?topicName[]=mobile&topicName[]=website (注意方括号。)

稍后您可以检查查询参数是否是数组。您可以使用 Array.isArray 函数来实现。然后您可以在后面的部分执行异常处理。

关于javascript - 如何处理查询中的数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50883835/

相关文章:

javascript - 记住模态窗口选择的 Cookie

javascript - 如何为javascript中的文本框中输入的值创建更多元素?

javascript - 无效值错误: not an instance of HTMLInputElement

node.js - 当数据库位于服务器文件夹之外时如何启动 Mongoose 连接?

javascript - 此页面未正确加载 Google map 。有关技术细节,请参阅 JavaScript 控制台

javascript - 在 Redactor 编辑器中将类添加到 <a> 的选项

javascript - Node.js 中的导出模块

android - 在 Android 中使用后置双摄像头

api - gitlab API是否有速率限制

node.js - 在 Mean.js 中使用 Node 的域