Я изучаю создание узловых приложений. мое текущее приложение должно сохранять данные в формате JSON в файл. как только информация сохранена, я хотел перенаправить на домашнюю страницу. Но каждый второй раз, когда я использую fs.writeFile, я получаю сообщение о том, что в соединении было отказано. Что я делаю не так?
модель:
static addItemToCart(item_Id,item_price){
return new Promise((resolve,reject)=>{
getCartFileContent()
.then(cart=>{
const currentProducts = cart.cartProducts.map(item=>item.itemId);
const cartContent = {...cart};
if(!currentProducts.includes(item_Id)){
cartContent.cartProducts.push({
itemId: item_Id,
qty: 1
});
cartContent.totalPrice += parseFloat(item_price);
cartContent.totalPrice = +cartContent.totalPrice.toFixed(2);
}else{
const indexToAddAt = cartContent.cartProducts.findIndex(item => item.itemId === item_Id);
cartContent.cartProducts[indexToAddAt].qty++;
cartContent.totalPrice += parseFloat(item_price);
cartContent.totalPrice = +cartContent.totalPrice.toFixed(2);
};
fs.writeFile(p,JSON.stringify(cartContent),(err)=>{
if(err){
return reject(err);
}else{
return resolve('product successfully added to cart');
};
});
});
});
};
контроллер:
exports.postAddToCart = (req,res,next) => {
const itemToAdd = req.body.productId;
const itemPrice = req.body.productPrice;
Cart.addItemToCart(itemToAdd,itemPrice)
.then(msg=>{
console.log(msg);
res.redirect('/home');
})
.catch(err=>{
console.log(err);
});
};
Функция выполняет запись в файл правильно, но каждый раз, когда я вызываю этот контроллер, соединение отклоняется, почему это так?
Спасибо.