¿Cómo devuelve una función de un servidor express y la ejecuta en un navegador?
He alojado una función en Google Cloud Platform (Cloud Functions) y quiero ejecutarla en una aplicación web a través de una etiqueta de secuencia de script . La función está en Nodejs 16 y se puede llamar a través de https, y es un ejemplo simple de hola mundo:
exports.helloWorld = () => { const widget = console.log("This is a widget"); return widget(); } Sin embargo, parece que no puedo llamarlo de esa manera, porque aparece un Error: could not handle the request y un mensaje de estado 500 cada vez que intento llegar al punto final.
Quiero poder incrustar esta función en un sitio web a través de algo como:
<script src="https://example.com/function-name"/>¿Cómo puedo lograr eso?
Parece que su Cloud Function tiene un formato incorrecto. Cuando crea una función en la nube, debe devolver un código de estado; de lo contrario, la función en la nube expirará esperando el código de estado devuelto (arrojando el error 500 que tenía).
Si adivino correctamente, lo que quiere hacer es llamar a un script externo desde Cloud Function, puede usar el siguiente código:
exports.helloWorld = (req, res) => { let message = 'alert("Hello world from CF")'; //Or any js code script here res.status(200).send(message); };Y llámalo desde la página HTML así:
<!DOCTYPE html> <html> <head> <script src="https://zone-project-id.cloudfunctions.net/helloworld"></script> </head> <body> <!-- the content goes here --> Hello world! </body> </html>