javascript - 尝试提交和验证表单,但它挂起并出现错误 - 标题:ValidatorError: Path `title` is required
问题描述
我是 JS 和 MongoDB 的新手,正在尝试组合一个简单的 CMS。我收到以下错误:
title: ValidatorError: Path `title` is required.
{
properties: [Object],
kind: 'required',
path: 'title',
value: undefined,
reason: undefined,
[Symbol(mongoose:validatorError)]: true }
这是我的控制器:
const { restart } = require("nodemon");
const Post = require('../models/postModel').Post;
module.exports = {
index: (req, res) => {
res.render('admin/index');
},
getPosts: (req, res) => {
res.render('admin/posts/index');
},
submitPosts: (req, res) => {
console.log(req.body);
const newPost = new Post({
title: req.body.title,
description: req.body.description,
status: req.body.status
});
newPost.save().then(post => {
console.log(post);
req.flash('success-message', 'Post created successfully.');
res.redirect('/admin/posts');
}, err => console.log(err))
},
createPosts: (req, res) => {
res.render('admin/posts/create');
}
};
这是我的帖子模型:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const PostSchema = new Schema({
title: {
type: String,
required: true
},
status: {
type: String,
default: 'public'
},
creationDate: {
type: Date,
default: Date.now()
}
})
module.exports = {Post: mongoose.model('post', PostSchema)};
这是我要提交的 HTML 表单:
<div class="container">
<h1>Create New Post</h1>
<div class="row p-4">
<div class="col-md-10">
<form action="/admin/posts/create" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="title">Title</label>
<input type="text" class="form-control" name="title" id="title" placeholder="Enter The Title">
</div>
<div class="form-group">
<label for="file">File Upload</label>
<input type="file" class="form-control" id="file" name="uploadedFile" accept="image/jpeg, image/jpg, image/png, image/bmp">
</div>
<div class="form-group">
<label for="status">Status</label>
<select name="status" id="status" class="form-control">
<option value="public">Public</option>
<option value="private">Private</option>
<option value="draft">Draft</option>
</select>
</div>
<div class="form-group">
<label for="category">Category</label>
<select name="category" id="category" class="form-control">
{{#each categories}}
<option value="{{_id}}">{{title}}</option>
{{/each}}
</select>
</div>
<div class="form-check ml-3">
<label for="allowComments">
<input type="checkbox" class="form-check-input" id="allowComments" name="allowComments">
Allow Comments
</label>
</div>
<div class="form-group">
<label for="description">Content</label>
<textarea name="description" id="description" class="form-control" placeholder="Enter your content here" rows="10"></textarea>
</div>
<button class="btn btn-outline-success btn-lg" type="submit">Create Post</button>
</form>
</div>
</div>
</div>
有人可以帮我找到问题吗?几天来我一直在努力解决这个问题……非常感谢!
解决方案
推荐阅读
- php - 解码 Unicode 转义序列时出现意外结果
- ruby-on-rails - Capistrano 未设置环境变量 AWS EC2
- database - Clarification on First Normal Form
- c++ - !heap -l 的巨大差异导致调试和发布版本之间的 Windbg
- angular - 区分 Observables、Subjects、ReplaySubjects、Behavior Subjects?
- algorithm - 到达目的地的最短停留时间
- php - 将登录会话用户名/用户 ID 存储在本地存储中,然后在页面之间传递它是否安全?
- r - 给定数据框中的这两列,如何在 R 中使用“最小”函数?
- java - 在一个线程中定期发送许多 UDP 数据报有时会导致微包突发
- kotlin - Kotlin:使用 buildString 修复重载解析歧义