gpt4 book ai didi

javascript - NodeJS 返回无效的有效电子邮件地址正则表达式

转载 作者:行者123 更新时间:2023-11-30 09:49:04 24 4
gpt4 key购买 nike

编辑 NodeJS 路由处理程序

// require() statements above
let error = {};

module.exports = {
authorize: (req, res, next) => {
const USERNAME = req.body.username,
PASSWORD = req.body.password,
SCOPES = req.body.scopes;

console.log(req.body);

const SCOPE_LOOKUP = ['read', 'write', 'admin'];
if(!VALIDATE_EMAIL(USERNAME)) {
error.message = 'Invalid username.';
}

if(error.message) { return next(error) };
return res.status(200).json(req.body);
}
};

下面的代码在我正在处理的 NodeJS 应用程序上运行。电子邮件地址 const 填充了 req.body.email 的内容,我正在使用 Postman 进行 API 调用。

运行下面的代码并传递一个有效的电子邮件地址将按预期工作。但是,如果我传递一个无效的电子邮件地址,该代码也会按预期工作,但是当我传递另一个有效的电子邮件地址时,我最终会得到 Invalid email。这发生在没有重新启动服务器的情况下。

执行顺序或范围是否有问题,我错过了?

const VALIDATE_EMAIL = email => {
const EXP = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
const DOMAIN = '@example.com';
const OUTPUT = (EXP.test(email) && email.indexOf(DOMAIN, email.length - DOMAIN.length) !== -1) ? true : false;
return OUTPUT;
};
(() => {
let error = {};
const EMAIL = 'joebloggs@example.com';

if(!VALIDATE_EMAIL(EMAIL)) {
error.message = 'Invalid email.';
}

if(error.message) { console.log(error.message); return };
console.log(EMAIL);
})();

最佳答案

您的问题是您在应用程序的整个生命周期中一直存在错误消息。不要在处理程序范围之外声明 error 对象...您需要在请求处理程序中声明 error 对象,以便每个请求都有一个新的 error 对象(和后续错误消息)。

module.exports = {
authorize: (req, res, next) => {
const error = {
message: '',
something: '',
foo: ''
};

const USERNAME = req.body.username,
PASSWORD = req.body.password,
SCOPES = req.body.scopes;

console.log(req.body);

const SCOPE_LOOKUP = ['read', 'write', 'admin'];
if(!VALIDATE_EMAIL(USERNAME)) {
error.message = 'Invalid username.';
}

if(error.message) { return next(error) };
return res.status(200).json(req.body);
}
};

关于javascript - NodeJS 返回无效的有效电子邮件地址正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37397517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com