Я создаю блог, используя ExpressJS, MongoDB и Quill JS для редактора форматированного текста. Я пытаюсь передать Delta (Quill JS JSON Object серверу через ajax)
$('#submit').click(function() {
var delta = quill.getContents();
console.log(delta)
$.ajax({
url: 'http://localhost:3000/',
type: 'POST',
data: {
delta: delta
},
dataType: "json",
contentType: "application/json"
})
})
Вот мой сервер
articleRouter.post('/new', async function(req, res) {
let article = new Article({
type: 'blog',
title: req.body.title,
hook: req.body.hook,
content: req.body.delta,
writer: req.body.writer
})
try {
article = await article.save()
res.redirect(`read/${article.slug}`)
} catch (e) {
console.log(e)
res.render('index', { page: 'new', article: article, title: 'Create a new article' })
}
})
и Model
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const slugify = require('slugify')
// Define collection and schema
let Article = new Schema({
type: {
type: String,
required: true,
},
title: {
type: String,
required: true,
},
hook: {
type: String,
required: true,
},
content: {
type: Object,
required: true,
},
writer: {
type: String
},
slug: {
type: String,
required: true,
unique: true
},
createdAt: {
type: Date,
default: Date.now
}
}, {
collection: 'article'
})
Article.pre('validate', function(next) {
if (this.title) {
this.slug = slugify(this.title, { lower: true, strict: true })
}
next()
})
module.exports = mongoose.model('Article', Article)
Я получил эту ошибку
Error [ValidationError]: Article validation failed: content: Path `content` is required.
Я считаю, что AJAX не работает должным образом или я что-то пропустил по адресу:
content: req.body .delta, Как это исправить?