我一直在尝试检查是否存在带有书架的电子邮件,但每次都会收到空回复。如果我尝试其他领域,效果会很好。
(我更喜欢这样做,是不是我做错了什么?(
var useremail = await Customer.where({ 'email': req.body.email }).fetch({ require: true });
但如果我这样做,我会得到正确的回应。
var username = await Customer.where({ 'name': req.body.name }).fetch({ require: true });
我也试过了。获取所有用户,然后尝试获取电子邮件,然后检查req.body.email是否存在。但仍然不起作用
var emails = await Customer.fetchAll().then(users => {
users.forEach(element => {
var emailAlone = element.attributes.email;
for (const item in emailAlone) {
if (item == req.body.email) {
console.log("Item is ", item);
}
}
});
});
感谢
我终于像这样修复了
对于那些可能会这样做的人来说。如果有更好的方法,有人应该建议
await Customer.where({ 'email': req.body.email }).fetch({ require: true }).then(
users => {
if (users.attributes.email.length > 0) {
return res.status(500).json(
{ error: true, message: "email already exist" }
);
}
else {
console.log("registering now");
}
我仍然要看看如何检查电子邮件和用户名
此解决方案更像是初学者风格,但运行良好(在大数据集上可能运行较慢(。
async function createBookshelfOf(tbl){ // Helper function
return bookshelf.Model.extend({
tableName: tbl,
idAttribute: "id"
});
}
app.post("/register",async(req, res) => {
try{
let bookshelfCustomers = await createBookshelfOf("Customers");
let Customers = await new bookshelfCustomers().fetchAll();
for (let customer of Customers.toJSON()){
if (customer.email === req.body.email){
res.status(403).send("Customer with this email exists");
}
}
// If customer doesn't exist code below will execute
{your code}
res.status(200).send("Successfully perforned ...")
} catch (e) {
console.log(e.message)
res.status(500).send(e.message);
}
});