【问题标题】:Importing img Url from MongoDB using Mongoose doesn't work使用 Mongoose 从 MongoDB 导入 img Url 不起作用
【发布时间】:2019-02-23 03:13:27
【问题描述】:

我正在尝试使用 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

【问题讨论】:

  • 请显示您的相关客户端服务器代码。

标签: javascript mongodb express mongoose ejs


【解决方案1】:

我觉得应该是这样的

..... // 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。如果您有任何疑问,请告诉我。

【讨论】:

  • 嗨,当使用 FindOne 时,它​​只给了我一个对象 instad 一个数组,结果非常好,但仍然将“backImg”控制台记录为“未定义”:\,
【解决方案2】:

所以看起来那些作为 undefiend 导入的字段没有添加到项目架构中,所以这就是问题

【讨论】:

    猜你喜欢
    • 2017-12-13
    • 2014-11-27
    • 2016-06-07
    • 2020-06-21
    • 2013-03-15
    • 1970-01-01
    • 2018-08-06
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多