大佬教程收集整理的这篇文章主要介绍了Mongoose:需要验证错误路径(博客验证失败:内容:路径`content`是必需的。,.....),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试为博客创建评论表单,但是每当我提交表单路径需要错误时,我尝试在我的评论路径中使用 req.send
来检查表单是否在书面位置提交及其工作接下来我通过控制台日志检查了 req.body.blogs
路线上的 blog/new
,但我无法弄清楚错误来自哪里,请帮助谢谢。
const express = require('express')
const app = express();
const path = require('path');
const eJsmate = require('eJs-mate');
const methodoverrIDe = require('method-overrIDe');
const { blogscheR_952_11845@a,revIEwscheR_952_11845@a } = require('./scheR_952_11845@as')
const catchAsync = require('./utils/catchAsync');
const ExpressError = require('./utils/ExpressError');
const mongoose = require('mongoose');
const Blogs = require('./models/Blogs');
const RevIEw = require('./models/Blogs');
mongoose.connect('mongodb://localhost:27017/DailyTech',{useNewUrlParser: true,useCreateIndex: true,useUnifIEdtopology: true,useFindAndModify: falsE}).then(() => {
console.log("MONGO CONNECTION OPEN!!");
})
.catch(err => {
console.log("MONGO CONNECTION Error...");
console.log(err);
})
app.use(expresS.Urlencoded({ extended: true }));
app.use(methodoverrIDe('_method'))
app.use(express.static(path.join(__dirname,'public')));
app.ENGIne('eJs',eJsmatE);
app.set('vIEws',path.join(__dirname,'vIEws'));
app.set('vIEw ENGIne','eJs')
// blog valIDation
const valIDateBlogs = ( req,res,next) =>{
const {error} = blogscheR_952_11845@a.valIDate(req.body);
if(error){
const msg = error.details.map(el => el.messagE).join(',')
throw new ExpressError(msg,400)
}else{
next();
}
}
// revIEws valIDation
const valIDateRevIEw = (req,next) => {
const { error } = revIEwscheR_952_11845@a.valIDate(req.body);
if (error) {
const msg = error.details.map(el => el.messagE).join(',400)
} else {
next();
}
}
// Home
app.get('/',async(req,res) => {
res.render('Blogs/home',)
})
// Index
app.get('/blogs',res) => {
const blogs = await Blogs.find({})
res.render('Blogs/index',{Blogs})
})
// form to create new blog
app.get('/blogs/new',(req,res) => {
res.render('Blogs/new');
})
// create new blog
app.post('/blogs',valIDateBlogs,catchAsync(async(req,next) => {
// console.log(req.body);
const newblog = new Blogs(req.body.blogs)
console.log(req.body)
await newblog.save();
res.redirect(`/blogs/${newblog._ID}`)
}))
// show SELEcted blog
app.get('/blogs/:ID',next) => {
const { ID } = req.params;
const blog = await Blogs.findByID(ID);
res.render('Blogs/show',{ blog })
}))
// render edit form
app.get('/blogs/:ID/edit',res) => {
const { ID } = req.params;
const blog = await Blogs.findByID(ID);
res.render('Blogs/edit',{Blog});
}))
// update blog
app.put('/blogs/:ID',next) => {
// res.send('worked')
const { ID } = req.params;
const blog = await Blogs.findByIDAndupdate(ID,{ ...req.body.blogs });
res.redirect(`/blogs/${Blog._ID}`)
}))
// delete Blog
app.delete('/blogs/:ID',next) => {
const { ID } = req.params;
const blog = await Blogs.findByIDAndRemove(ID)
res.redirect("/blogs")
}))
// RevIEws
app.post('/blogs/:ID/revIEws',) => {
// res.send('you made it')
const blog = await Blogs.findByID(req.params.ID);
const revIEw = new RevIEw(req.body.revIEw);
blog.revIEws.push(revIEw);
await revIEw.save();
await blog.save();
// req.flash('success','Created new revIEw!');
res.redirect(`/blogs/${Blog._ID}`);
}))
// error handeling
app.all('*',next) => {
next(new ExpressError('Page Not Found',404))
})
app.use((err,req,next) => {
const { statusCode = 500 } = err;
if(!err.messagE) err.message = 'Oh No,Something Went Wrong!'
res.status(statusCodE).render('error',{err})
})
app.Listen(3000,()=>{
console.log("Listening to port 3000!");
})
//============
//show.eJs
//========
<% layout('layouts/boilerplate') %>
<div class="row">
<div class="col-8">
<div class="card mb-3">
<img src="<%= blog.image %>" alt="img">
<div class="card-body">
<h5 class="card-title"><%= blog.title %></h5>
<p><%= blog.content %></p>
<p class="card-text">
<small class="text-muted">Added by <%= blog.author %></small>
</p>
</div>
<div class="card-body">
<a class="btn btn-outline-success" href="/blogs">BACk</a>
<a class="card-link btn btn-outline-info" href="/blogs/<%= blog._ID %>/edit">Edit</a>
<form class="d-inline" action="/blogs/<%= blog._ID %>?_method=deletE" method="post">
<button class="btn btn-outline-danger" type="submit">delete</button>
</form>
</div>
</div>
<h2>Leave a RevIEw</h2>
<form action="/blogs/<%= blog._ID %>/revIEws" method="POST" >
<div class="mb-3">
<label class="form-label" for="raTing">raTing</label>
<input class="form-range" type="range" min="1" max="5" name="revIEw[raTing]" ID="raTing">
</div>
<div class="mb-3">
<label class="form-label" for="body">RevIEw</label>
<textarea class="form-control" name="revIEw[body]" ID="body" cols="30" rows="3"></textarea>
</div>
<button class="btn btn-success">submit</button>
</form>
</div>
</div>
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
以上是大佬教程为你收集整理的Mongoose:需要验证错误路径(博客验证失败:内容:路径`content`是必需的。,.....)全部内容,希望文章能够帮你解决Mongoose:需要验证错误路径(博客验证失败:内容:路径`content`是必需的。,.....)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。