我无法从我的mongo中检索数据到我的哈巴狗模板。我已经用mongoose成功地将测试项目发布到我的数据库,它仍然在那里,但我无法在我的玉模板上显示它。
我认为我一直非常混乱和不一致,因为我不知道这是如何工作的。
这是我的GET和POST函数的index.js:
const express = require('express');
const passport = require('passport');
const Account = require('../models/account');
const Item = require('../models/item');
const router = express.Router();
router.get('/add', (req, res) => {
if (req.user){
res.render('add', { user : req.user });
} else {
res.redirect('/');
//res.send({ error: "please log in first" });
}
});
router.post("/add", (req, res) => {
var item = new Item(req.body);
item
.save(
new Item({
user : req.user,
itemName : req.body.itemName,
itemType : req.body.itemType,
itemDesc : req.body.itemDesc,
itemPic : req.body.itemPic
})
)
.then(item => {
res.render('/', { user : req.user });
/* i used res.redirect and { item : items } but it lead me to an error when i tried posting a second test item */
})
.catch(err => {
res.render('add', { user : req.user, error : req.flash('error')});
});
});
在我的jade / pug模板中:
Listing: #{item.itemName}
Type: #{item.itemType}
Description: #{item.itemDesc}
img(src="#{item.itemPic}", alt="", height="200px", width="200px")
旁注:我的itemPic目前采用字符串格式,就像我的其他数据一样,因为在我解决此问题后添加multer s3上传功能将是下一步。我认为它真的很容易,但我只是没有得到正确的基础知识,我无法轻松地在网上找到规则,我不知道这是否是将它称为img src的方式。
我认为我的错误处理也是一个问题,在我的layout.pug上我有:
if (error && error.length > 0)
br
h4.error-msg= error
br
基本上我需要整理我的'/ add'GET和POST所以我可以从我的哈巴狗模板中检索我的mongodb数据,当我没有登录时点击添加按钮,它会弹出一个错误提示用户登录的消息。当我登录并提交我的添加表单时,它还将我的用户的ID或用户名绑定到我传递的ADD数据,因此将按用户列出此项目。如果添加时出现错误,它将只显示在我的哈巴狗/添加页面上。
非常感谢提前!我基本上是自学编码ps - 我不知道如何在我的项目中使用邮递员