#node.js #joi
#node.js #joi
Вопрос:
Я попробовал crud-операцию с использованием nodejs и mongodb. Он работает нормально, но как проверить данные с помощью joi validator.Я не знаю, как добавить код проверки joi в node js, подключающий mongodb.
product.js
const Joi = require('joi');
router.post('/', async (req, res) => {
(async function() {
try {
await client.connect();
console.log("Connected correctly to server");
const db = client.db('olc_prod_db');
let r = await db.collection('Ecommerce').insertOne(req.body);
assert.equal(1, r.insertedCount);
res.send("Inserted Sucessfully")
client.close();
} catch(err) {
console.log(err.stack);
}
})();
});
Ответ №1:
Пример проверки тела экспресс-запроса:
const Joi = require('joi');
const validateRequest = (schema) => async (req, res, next) => {
const { error } = Joi.validate(req.body, schema);
if (error) {
throw new Error(error);
}
return next();
};
const validatinSchema = Joi.object().keys({
firstName: Joi.string().required(),
lastName: Joi.string().required(),
}),
router.post('/', validateRequest(validationSchema), async (req, res) =>
// rest of your code
Комментарии:
1. Можете ли вы дать мне, как добавить код joi в мой код, можете ли вы дать мне предложение.
2. Пожалуйста, внимательно посмотрите на код, который я предоставил
router.post('/', validateRequest(validationSchema), async (req, res) => // rest of your code goes here
3. У меня есть еще одно сомнение. Я попытался получить данные в mongodb с помощью node js. но я получил только одни данные. его ошибка из-за невозможности установить заголовки после их отправки. Я перепробовал много способов. но я все еще сталкиваюсь с этой проблемой. как решить эту проблему, есть предложения
4. мой код БД позволяет r = await db.collection(‘Электронная коммерция’).find(); r.forEach(функция (результат, ошибка) { res.send(результат) })
5. не могли бы вы создать новый вопрос с кодом и стеком ошибок, а затем дать мне ссылку на новый вопрос