#node.js #express
Вопрос:
Я пытаюсь поймать токены fcm для моего push-уведомления, но когда я консолирую.зарегистрируйте мои данные, она вернет «null» . В модели «Пользователь» у меня есть мой fcmToken на моей модели, я хочу поймать его, чтобы добавить его на свою платформу .
User.find( (data,req,res)=>{
console.log(data)
if (Array.isArray(data)){
var sns = new AWS.SNS();
sns.createPlatformEndpoint({
PlatformApplicationArn: 'arn:aws:sns:us-east-1:025697195090:app/.....',
Token: data
}, function(err, data) {
if (err) {
console.log(err.stack);
return;
}
var endpointArn = data.EndpointArn;
var payload = {
default: 'Hello World',
APNS: {
aps: {
alert: 'coucouuuuu',
sound: 'default',
badge: 1
}
}
};
// first have to stringify the inner APNS object...
payload.APNS = JSON.stringify(payload.APNS);
// then have to stringify the entire message payload
payload = JSON.stringify(payload);
console.log('sending push');
sns.publish({
Message: payload,
MessageStructure: 'json',
TargetArn: endpointArn
}, function(err, data) {
if (err) {
console.log(err.stack);
return;
}
console.log('push sent');
console.log(data);
});
});
}
})
Комментарии:
1. Вместо того, чтобы использовать обратный вызов fn,
async/await
это упростило бы этот способ, так.find
как также обещает возврат. Так что это будет выглядеть такconst myData = await User.find(query)