Я пытаюсь проверить форму ввода с помощью Joi, а затем выполнить вставку. Я думал, что сначала нужно получить данные, а затем проверить их перед вставкой в db.
Перед вставкой я решил записать в console.log результат, но получил эту ошибку.
Также может кто-нибудь предложить пакет для безопасности. Я слышал о Helmet, но не знаю, как применить его к своему коду. Кто-нибудь, пожалуйста, покажите мне
[Объект: нулевой прототип] {название книги: 'dswdgefg', краткое содержание: 'dstsdtgdrtfy \ r \ n', isbn: '234325435', выберите: 'Фрукты'} [Объект: нулевой прототип] {название книги: 'dswdgefg',
сводка: 'dstsdtgdrtfy \ r \ n', isbn: '234325435',
select: 'Fruits'} POST / addbooks 200 23,899 мс - 16 Ошибка [ERR_HTTP_HEADERS_SENT]: невозможно установить заголовки после их отправки клиенту на ServerResponse.setHeader (_http_outgoing.js: 482: 11) в ServerResponse.header (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ response.js: 767: 10) в ServerResponse.send (C : \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ response.js: 170: 12) по завершении (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ response. js: 1004: 10) в tryHandleCache (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ ejs \ lib \ ejs.js: 257: 5) в View.exports.renderFile [как движок] (C: \ Пользователи \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ ejs \ lib \ ejs.js: 480: 10) в View.render (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ view.js: 135: 8) в tryRender (C : \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ application.js: 640: 10) в Function.render (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ application.js: 592: 3) в ServerResponse.render (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ response.js: 1008: 7) в C: \ Users \ dokunbam \ Documents \ Узел \ crudlist \ app.js: 41: 7 в Layer.handle_error (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ router \ layer.js: 71: 5) в trim_prefix (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ router \ index.js: 315: 13) в C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ router \ index .js: 284: 7 в Function.process_params (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ router \ index.js: 335: 12) в следующий (C: \ Users \ dokunbam \ Documents \ Node \ crudlist \ node_modules \ express \ lib \ router \ index.js: 275: 10)
Это мой код
exports.addbooks = function (req, res)
{
const bookname = req.body.bookname;
const summaries = req.body.summaries;
const isbn = req.body.isbn;
const category = req.body.select;
const schema = Joi.object().keys({
bookname: Joi.string().trim().min(6).max(25).required(),
summaries: Joi.string().trim().required(),
isbn: Joi.number().required(),
category: Joi.string().trim().required()
});
Joi.validate(req.body, schema, (err, result) => {
if(err){
console.log(result)
res.send('an error occured');
}
console.log(result)
//Perform knex insert into db
res.send("successfully added");
})
}
Спасибо