node.js:仅安装googleapis所需的模块
我正在使用nodejs发送FCM通知。以下是我的代码,
const errorCodes = require('source/error-codes');
const PropertiesReader = require('properties-reader');
const serviceAccount = require("service-account.json");
const fetch = require('node-fetch');
var {
google
} = require('googleapis');
var MESSAGING_SCOPE = 'https://www.googleapis.com/auth/firebase.messaging';
var SCOPES = [MESSAGING_SCOPE];
const prop = PropertiesReader('properties.properties');
exports.sendSingleNotification = async (event, context) => {
var PROJECT_ID = "xxx";
if (event.body == null && event.body == undefined) {
var response = errorCodes.missing_parameters;
return response;
}
try {
let body = JSON.parse(event.body)
console.log("body", body);
let promise = new Promise(function(resolve, reject) {
var key = require("service-account.json");
var jwtClient = new google.auth.JWT(
key.client_email,
null,
key.private_key,
SCOPES,
null
);
jwtClient.authorize(function(err, tokens) {
if (err) {
reject(err);
return {
"error": "error 1"
};
}
console.log("resolve");
console.log(tokens);
resolve(tokens.access_token);
});
});
let accessToken = await promise;
console.log("access token");
console.log(accessToken);
var message = {
"message": {
"token": body.fcmToken,
"notification": {
"title": "Portugal vs. Denmark",
"body": "great match!"
}
}
};
const response = await fetch('https://fcm.googleapis.com/v1/projects/' + PROJECT_ID + '/messages:send', {
method: 'post',
body: JSON.stringify(message),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + accessToken
}
});
const data = await response.json();
return {
"message": data
}
} catch (error) {
console.log(error);
return {
"error 2": error
}
}
};
代码正常。但是,为了完成这项工作,我已经通过 npm安装googleapis
安装了整个 googleapis
npm。这似乎已经下载了我不需要的许多模块,并且增加了我的应用程序的编译时间。它也可能会增加AWS lambda冷启动时间(这是一个lambda应用程序)。
文档说,如果需要减少启动时间,我们可以安装特定的模块()。
我的问题是,查看我的代码,我需要安装的模块是什么而不是整个 googleapis
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我一个人想知道。我必须安装
Google-Auth-library
npm模块。这是代码。I figured out by myself. I had to install
google-auth-library
npm module. Here is the code.