поэтому я создаю облачную функцию, и я структурировал свой код в несколько файлов.
Мой index.js выглядит следующим образом:
const { postHandler } = require('./requestHandler.js');
const httpHandler = (req, res) => {
const { method } = req;
switch (method) {
case 'POST':
postHandler(req, res);
break;
case 'GET':
getHandler(req, res);
break;
case 'DELETE':
deleteHandler(req, res);
break;
case 'PUT':
putHandler(req, res);
break;
default:
return res.sendStatus(400).json({message: 'Invalid method. Allowed are POST, GET, DELETE'});
}
}
exports.httpHandler = httpHandler
И это requestHandler
const createReviewApp = require('./createReviewApp')
const postHandler = ( req, res ) => {
const { path } = req;
return createReviewApp( req, res )
}
module.exports = { postHandler }
Это createReviewApp
const _compute = require('./computeClass.js');
const _dns = require('./dnsClass.js');
const _storage = require('./storageClass.js');
const createReviewApp = ( req, res ) => {
// doing something
}
А это мой computeClass
const Compute = require('@google-cloud/compute')
const projectId = process.env.GOOGLE_PROJECT_ID;
class ComputeSingleton {
constructor(){
this.compute = new Compute({
projectId,
});
}
getVm({zoneName, vmName}){
return this.getZone({zoneName}).vm(vmName).get();
}
getZone({zoneName}){
return this.compute.zone(zoneName);
}
createVm({zoneName, vmName, config}){
return this.getZone({zoneName}).createVM(vmName, config);
}
deleteVm({zoneName, vmName}){
return this.getZone({zoneName}).vm(vmName).delete();
}
}
module.exports = new ComputeSingleton()
Теперь в моем computeClass я получаю следующую ошибку:
Cannot find module '@google-cloud/compute
У меня установлены зависимости, нужно ли поместить весь мой код в один файл?
Редактировать: Я тестирую его на эмуляторе nodejs функций