У меня есть API рабочего узла, который мне нужно развернуть в облачных функциях
index. js это запись:
"use strict";
const functions = require('firebase-functions');
const admin = require('firebase-admin');
const alertsAPI = require('../src/app.js');
admin.initializeApp(functions.config().firebase);
exports.api = functions.https.onRequest(alertsAPI);
.. / src / app. js, откуда берется объект alertAPI:
const bodyParser = require('body-parser')
const express = require('express')
const routes = require('./routes')
const cors = require('cors')
alertsAPI = express();
alertsAPI.use(cors({ origin: true }))
alertsAPI.use(bodyParser.json())
alertsAPI.set('json spaces', 2)
alertsAPI.use('/', routes)
module.export = alertsAPI;
и . / routes. js содержит сам импортируемые маршруты и вызывает logi c:
var Controller = require('./controller.js')
var express = require('express')
var router = express.Router()
router.get('/', (req, res) => {
const controller = new Controller()
controller.addListener('get_definition', (return_value) => {
res.status(200).json(return_value)
})
controller.getDefinition()
})
...
module.exports = router;
Это работает локально.
firebase. json конфигурация:
{
"functions": {
"predeploy": "npm --prefix \"$RESOURCE_DIR\" run build"
},
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**",
"**creds.json"
],
"rewrites": [
{
"source": "/api/**",
"function": "api"
}
]
}
}
Я могу развернуть без ошибок.
Но переход к выходу https://region-my-project.cloudfunctions.net/api/
дает Error: could not handle the request
, а в журналах написано Function execution took 199 ms, finished with status: 'crash'"
Кто-нибудь знает, что я делаю неправильно?