javascript - 使用 Mongoose 从 MongoDB 导入 img Url 不起作用
问题描述
我正在尝试使用 mongoose 从我的数据库(mongodb)导入 img url,并用 EJS 显示它,我的问题是我总是不确定。
我使用 findById 时得到的数据是 "item" =
[
{
_id: 5b809b2c74e2f54c20ae30da,
brand: 'honda',
model: 'cbr250r',
price: 20000,
amount: 20,
img: 'https://news.maxabout.com/wp-content/uploads/2016/12/22.png',
backImg: 'https://wallpapercave.com/wp/wp3065342.png',
views: 1,
desc: 'this is a bike description'
}
]
我正在尝试使用以下路径获取我的“backImg”:“item [0] .backImg”。当我 console.log 它我得到未定义。我也试过“item.backImg”
那是包含以下功能的路由文件:
const router = require('express').Router();
const bodyParser=require('body-parser')
const urlencodedParser =bodyParser.urlencoded({extended:false})
router.use(bodyParser.json());
router.use(bodyParser.urlencoded({ extended: true }));
const itemModel = require('../models/itemsModel')
const userModel = require('../models/userModel')
//items//
router.get('/:_id',(req,res)=>{
console.log(req.params._id)
let q = itemModel.find({_id:req.params._id})
q.exec(function(err,item){
if(err){
console.log(err)
} else {
console.log(item)
console.log(item[0].brand)
console.log(item[0].backImg)
console.log(item.backImg)
res.render('./pages/items' , {item:item,user: req.user,} )
}
})
})
module.exports = router
解决方案
我认为应该是这样的
..... // previous code
itemModel.findOne({_id:req.params._id})
.then((item)=>{
if(!item){
console.log("No record found");
}
console.log(item)
console.log(item.brand)
console.log(item.backImg)
})
.catch(err=>{
console.log("Error",err)
})
在这里你可以看到我使用了猫鼬的 findOne 方法,它只会从数据库中给出 1 个结果(单个对象)。还要检查是否req.params._id
不是undefined
。如果您有任何疑问,请告诉我。
推荐阅读
- java - 从平面图表示中恢复值树
- python - 什么是与 python 一起使用的最佳 SNMP 包,用于同时监控 100 多个节点
- r - 仅在指定位置粘贴两个向量
- java - 创建一个由 ByteBuffer 支持的 bufferedImage
- python - 如何使用 Django Restframwork 按日期和 id 过滤 django 模型数据?
- macos - RequestStorageAccess - 如果拒绝访问,则启动弹出窗口
- apache-spark - AWS S3 中的 Databricks Committed_vacuum
- sql - 查询返回连续记录数
- java - 让 java 在 Minecraft 服务器上使用 4GB 内存
- asp.net - 下拉列表不填充数据表中的值