Можно ли отображать сообщения об ошибках в комбинации nodejs, mysql и ejs без взаимодействия с базой данных?Jquery

Программирование на jquery
Ответить
Anonymous
 Можно ли отображать сообщения об ошибках в комбинации nodejs, mysql и ejs без взаимодействия с базой данных?

Сообщение Anonymous »

Мой вопрос заключается в отображении сообщений об ошибках в приложении для выставления счетов nodejs, mysql, ejs. Меня беспокоит то, что у меня есть код формы, в котором действие отправки указано как «/addbill», и в этом дополнении уже есть логика для удаления и вставки записей в базу данных, а соответствующий шаблон ejs для рендеринга — printbill.ejs.
Теперь, когда я отправляю форму, введя значение текстового поля количества как 0, поэтому при отправке я должен показать сообщение об ошибке, что «это не должен принимать значение как 0", я написал логику здесь, в server.js ниже.
Если в приведенной ниже логике "viewbill.ejs" отображается с объектом errormessage, проблема в том, что в этом ejs уже есть продукты, перечисленные в базе данных, и данные привязаны как массив продуктов, поэтому, когда я передаю сообщение об ошибке, я получаю сообщение об ошибке, что продуктов нет, и показывает неопределенное значение, даже если я добавляю продукты в виде пустого массива, поскольку на этот раз я не получаю ошибку и успешно вижу ошибку но мои продукты уходят. На самом деле мне нужно сохранить значение продуктов, а также показать эту ошибку поверх него.
Поэтому в этом случае мне нужно снова вызвать запрос продуктов, чтобы получить его из БД, и объединить его с объектом ошибки для достижения этой цели. Потому что мне нужно показать только сообщение об ошибке, но я хочу избежать ненужного вызова БД. Какой-нибудь совет поможет мне в этом?
Я также знаю, что добиться этого с помощью проверки на стороне клиента возможно, но, поскольку я новичок в технологии, я хочу знать, есть ли какой-либо подход, который помог бы отображать ошибки на всех страницах как общие, используя частичные шаблоны ошибок, которые можно включать там, где это необходимо.
app.post('/addbill',checkAuthenticated,(req,res) => {
let mon=parseInt(new Date().getMonth())+1
let currdate=new Date().getDate()+"/"+mon+"/"+new Date().getFullYear()
let currtime=new Date().toLocaleTimeString()
let ob = req.body;
for (var propName in ob) {
if (propName === null || propName === undefined || propName === "" || propName==="[object Object]") {
delete ob[propName];
}
}
let formdata = JSON.stringify(ob)
formdata=formdata.replace(/\\/g,"").replace(/"\[{/g,"").replace(/\]":""}$/,"")
formdata="["+formdata+"]"
let parsedata=JSON.parse(formdata)
let dbdata=[]
let ln = Math.floor(Math.random() * 9000) + 1000;
let billnumber="INV-".concat(currdate.replace(/\//g,"")).concat("-"+ln);
for (var i=0;i {
if(!err)
{
let sql1=`SELECT * FROM billdb WHERE BillNumber='${billnumber}'`
let query1 = mysqlConnection.query(sql1, (err, rows1, fields) => {
if(!err)
{
let printbill=rows1
res.render('printbill.ejs',{printbill:printbill})
}
else
console.log(err)
})
}
else
console.log(err)
})
})

//this is the logic to show error message
if(parseInt(parsedata[0].price)===0) {
console.log('error message'+errormessage)
return res.render('viewbill.ejs',{errormessage:errormessage});
}```
>asfd


Подробнее здесь: https://stackoverflow.com/questions/798 ... ithout-int
Ответить

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

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

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

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

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