Привет, я использую node js
в функции lambda
. Мне нужно извлечь только имя из электронного письма, чтобы запросить dynamo db
. Мне нужно только имя, потому что, например: если я даю [email protected]. Я должен получить все повторяющиеся электронные письма, такие как
[email protected]
[email protected]
Пожалуйста, помогите мне сделать это Ниже мой код:
const AWS = require('aws-sdk');
var docClient = new AWS.DynamoDB.DocumentClient();
var tableName = "Testing";
exports.handler = (event, context, callback) => {
console.info(event.PersonName)
docClient.scan(params, function(err, data){
if (err){
callback(err, data);
}else{
callback(err, data);
}
В приведенном выше коде я дал непосредственно имя. Когда это происходит динамически, он должен иметь возможность извлекать имя из электронного письма и должен быть назначен на val
Кроме того, как вы собираетесь решать что-то вроде [email protected]
. Это не очень хорошая идея, чтобы получить имя из электронной почты.
да, я передаю это как событие .... мне нужно только имя из электронного письма ... например: kumatul123 ... пожалуйста, помогите мне
Можете ли вы помочь мне ... я думаю, что мне следует использовать строковую функцию .... Я не знаю, как это сделать
Посмотрите ответ, если он вам поможет.
Вы можете использовать регулярное выражение.
Вот однострочный код, чтобы получить username
из email
.
var emailId = event.emailId; // or any other var which is having emaiID
var username = emailId.replace(/@.*$/,"");
Для большего варианта использования Регулярное выражение для электронной почты
Для вашего случая
exports.handler = (event, context, callback) => {
console.info(event.PersonName)
var emailId = event.emailId; // or any other var which is having emaiID
var val = emailId.replace(/@.*$/,"");
// use console.info to see if you're getting correct username
var params= {
TableName:'Testing',
KeyConditionExpression : 'EmailID = :EmailID',
FilterExpression : 'begins_with (EmailID, :val) ',
ExpressionAttributeValues : {
':val' : val
}
};
Сэр... получаю сообщение об ошибке: "errorMessage": "RequestId: a43e3f4d-51d0-492e-bd42-ca53e94d0023 Процесс завершен до завершения запроса"
Где я должен указать код регулярного выражения... в моем коде... пожалуйста, помогите мне
используйте вашу переменную для получения emailID. Я использовал общее имя event.emailId
, здесь вы должны использовать свой var.
Я, сэр... я получаю правильное имя пользователя... в моем журнале... но мне нужно, чтобы я передал только имя, извлеченное из электронной почты, в базу данных динамо, чтобы получить все повторяющиеся электронные письма... .Как я могу это сделать
В моем коде в theExpressionAttributeValues : { ':val' : val } вместо val... если передается какое-то конкретное имя, например pavi... оно дает все повторяющиеся электронные письма, такие как [email protected], pavi2@gmail. ком
Как вы предполагаете получить имя из имени пользователя? Имя пользователя может быть любой комбинацией. Если вам нужно имя, вы должны попросить пользователя указать свое имя. @Samiksha, тебе нужно подумать о своем дизайне.
Мне нужно найти повторяющиеся электронные письма... поэтому я извлекаю имя из электронной почты.
user emailID может быть любым, даже не обязательно иметь имя. Если вам нужно имя, спросите пользователя. EmailID не содержит имени.
Большое спасибо, сэр ... за помощь мне
Как вы отправляете электронное письмо в функцию? Это по событию?