#node.js
#node.js
Вопрос:
Я пытаюсь преобразовать старый способ написания обратных вызовов в Promise и асинхронный, используя util.promisify . Я действительно в замешательстве и не уверен, как это сделать. Если кто-нибудь может помочь мне с одним из этих, я могу продолжить со всеми моими другими классами.
const pool = require("../db");
module.exports = {
AddDish: (data, callback) => {
pool.query(
`insert into seller(FirstName, LastName, Phone, TimeToContact, Street, City, State, ZipCode, Country, FoodPermit, FoodPermitImage, GovtIdImage, CuisineSpecialize, CookDay, CookTimeFrom, CookTimeTo, Experience, HearAboutUs, Interests) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`,
[
data.firstName,
data.lastName,
data.phone,
data.timeToContact,
data.street,
data.city,
data.state,
data.zipCode,
data.country,
data.foodPermit,
data.foodPermitImage,
data.govtIdImage,
data.cuisineSpecialize,
data.cookDay,
data.cookTimeFrom,
data.cookTimeTo,
data.experience,
data.hearAboutUs,
data.interests,
// data.sellerReference, //Optional Attribute
// data.dateCreated, //Autogenerated
// data.dateModified, //Autogenerated
],
(error, results, fields) => {
if (error) {
return callback(error);
}
return callback(null, results);
}
);
},
getSellers: (callback) => {
pool.query(
`select FirstName, LastName, Phone, TimeToContact, Street, City, State, ZipCode, Country, FoodPermit, FoodPermitImage, GovtIdImage, CuisineSpecialize, CookDay, CookTimeFrom, CookTimeTo, Experience, HearAboutUs, Interests from seller`,
[],
(error, results, fields) => {
if (error) {
return callback(error);
}
return callback(null, results);
}
);
},
};
Ответ №1:
Насколько я знаю pool.query
возвращает обещание, если вы не предоставите обратный вызов, тогда вам просто нужно будет вернуть запрос следующим образом:
module.exports = {
AddDish: data => {
return pool.query(
`insert into seller(FirstName, LastName, Phone, TimeToContact, Street, City, State, ZipCode, Country, FoodPermit, FoodPermitImage, GovtIdImage, CuisineSpecialize, CookDay, CookTimeFrom, CookTimeTo, Experience, HearAboutUs, Interests) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`,
[
data.firstName,
data.lastName,
data.phone,
data.timeToContact,
data.street,
data.city,
data.state,
data.zipCode,
data.country,
data.foodPermit,
data.foodPermitImage,
data.govtIdImage,
data.cuisineSpecialize,
data.cookDay,
data.cookTimeFrom,
data.cookTimeTo,
data.experience,
data.hearAboutUs,
data.interests
// data.sellerReference, //Optional Attribute
// data.dateCreated, //Autogenerated
// data.dateModified, //Autogenerated
]
);
},
getSellers: () => {
return pool.query(
`select FirstName, LastName, Phone, TimeToContact, Street, City, State, ZipCode, Country, FoodPermit, FoodPermitImage, GovtIdImage, CuisineSpecialize, CookDay, CookTimeFrom, CookTimeTo, Experience, HearAboutUs, Interests from seller`,
[]
);
}
};
Комментарии:
1. Я не уверен, должен ли быть оператор select или есть какой-то другой способ обработки возврата