Как исправить проверку Post Wallanation Не удалось: заголовок: Cast to String Faile - Formidable (Node)Javascript

Форум по Javascript
Ответить
Anonymous
 Как исправить проверку Post Wallanation Не удалось: заголовок: Cast to String Faile - Formidable (Node)

Сообщение Anonymous »

Я делаю запрос на сообщение для создания сообщения в блоге, и я использую Fommidable для загрузки IMG для каждого поста, но я получаю ошибку 400. < /p>
Обновление: теперь я получаю фактическую ошибку: < /p>
Post validation failed: title: Cast to string failed for value "[ 'njk' ]" (type Array) at path "title", body: Cast to string failed for value "[ 'ugyjhvbhujb' ]" (type Array) at path "body", slug: Path `slug` is required.
< /code>
console.log(formData) Возвращает объект строк в фронте, например:
{ title: "suyghb", body: "cguyasjbhxz"...}
< /code>
but in the backend the values in fields aka formData are now arrays like:
{ body: [ 'ihubj' ], title: [ '87tugyh' ] }
< /code>
why is this?
​​I tried setting
'Content-Type': 'application/json
< /code>
but then I receive the error request entity too large.
posts.js (контроллеры)
export const create = (req, res) => {
let form = new formidable.IncomingForm()
form.keepExtensions = true
form.parse(req, (err, fields, files) => {
if (err) {
return res.status(400).json({
error: "Image could not be uploaded."
})
}

let post = new Post(fields)
if (files.photo) {
const photoFilePath = files.photo.map((file) => {
return file.filepath
})
}
const photoStr = photoFilePath.toString()
post.photo.data = fs.readFileSync(photoStr, 'utf-8')
post.photo.contentType = files.photo.type
}
post.save()
/• .then & .catch •/
< /code>
Form Validation
const { body, validationResult } = require('express-validator');

exports.userSignupValidator = (req, res, next) => {
validationBodyRules = [
body('email', 'email is required').exists(),
body('password', 'password is required').exists(),
body('email', 'email is required').notEmpty(),
body('password', 'password is required').notEmpty()
]

checkRules = (req, res, next) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json({ errors: errors.array() });
}
next();
};
}
< /code>
API request (client side)
export const createPost = (token, formData) => {
console.log(formData)
return fetch('http://localhost:8000/posts/new-post', {
method: 'POST',
headers: {
Authorization: `Bearer ${token}`,
},
body: formData
})
.then(response => {
return response.json();
})
.catch(err => {
console.error(err);
});
};


Подробнее здесь: https://stackoverflow.com/questions/797 ... midable-no
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»