【发布时间】:2019-07-17 08:43:08
【问题描述】:
我正在尝试在 Node 中实现搜索功能,猫鼬。
我喜欢按名称或艺术家搜索两个参数。如果两者中的任何一个与当前数据库匹配,它应该返回值(使其变得安静)
但是,它正在发送响应Error: Can't set headers after they are sent.
和Unhandled promise rejections are deprecated 甚至我得到的响应都是空的
我正在尝试在其中执行两个查询,我认为这可能是问题所在。我应该如何编写它,或者编写这些类型的功能的正确方法是什么
这是我当前的代码
app.get('/search/:textValue', controller.findData)
和 findData
exports.findData = (req, res)=>{
const searchParam = req.params.textValue;
let storeResult = []
if(searchParam==null|| searchParam == undefined || searchParam==""){
return res.status(500).json("Send a valid input")
}
else{
Song.find({artists: new RegExp(searchParam, "i")}).lean().then((data)=>{
storeResult[0].push(data)
}).catch((err)=>{
return res.send(err)
})
Song.find({name: new RegExp(searchParam, "i")}).lean().then((data)=>{
storeResult[1].push(data)
}).catch((err)=>{
return res.send(err)
})
return res.send(storeResult)
}
}
他们对单个查询工作得很好,这里应该做些什么改变?
【问题讨论】:
标签: node.js mongodb rest mongoose