繁体   English   中英

Mongoose 等待 node.js req.query 数据

[英]Mongoose await for node.js req.query data

我正在从事小型后端项目。 我通过 postman 向express.js应用程序发送 GET 请求。 mongoose快速发送请求并返回数据。

我试图通过编写 req.query.data 而不是 object 名称来缩短它。 req.query.data是导入到节点文件的 object 名称,但mongoose “find” function 将其读取为“req.query.data”而不是 acu

我尝试将 req 数据放入 () 但它仍然不想读取值。 我不知道如何使它工作

代码:

 const Daily = require("./DailyStats/DailySchema") module.exports.GetData = async (req, res) => { await Daily.find({"Date.month": 3}, function (err, data) { if(err){ console.error(err) } res.send(data) }) }

我想要的是

    await (req.query.data).find({"Date.month": 3}, function (err, data) {
        if(err){
            console.error(err)
        }
        res.send(data)
    })

使用第二个代码时出现错误“无法在 req.query.data 上使用方法查找”

find 应该在mongoose.Model上调用

您可以使用mongoose.model(req.query.data)假设 req.query.data 是您的 model 名称

那就是说你应该

  • 检查提供的数据是否只是有效的 model 名称
  • 更好地命名数据,例如 modelName
const mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/dummy')
const NameModel = mongoose.model('Name', { name:String }, 'names')

;(async()=>{
  try {
  console.log(mongoose.model('Name') === NameModel) // true
  } finally {
    mongoose.disconnect()
  }
})()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM