[英]Firebase Cloud function GET Request with google-translate-api
我是Node Js的新手,他试图创建一个将fr转换为en的应用程序。 当我在本地节点服务或firebase服务中使用它时,我的代码可以正常工作,但是当我将其部署到Firebase Cloud功能时,它无法正常工作。
并且Firebase部署运行,但未按预期更新google API或未翻译该词,它显示“请稍候”,但未更新它。任何帮助将不胜感激。
Firebase日志-错误: getprocess.get上的getaddrinfo ENOTFOUND translate.google.com translate.google.com:443,位于/user_code/node_modules/google-translate-api/node_modules/google-translate-token/index.js:103:25,位于process._tickDomainCallback (内部/进程/next_tick.js:135:7)
const functions = require('firebase-functions'); //in Firebase
const functions = require('firebase-functions');
const express = require('express');
var cors = require('cors')
const bodyParser = require('body-parser');
const app = express();
var translator = "Pls Wait";
const translate = require('google-translate-api');
app.use(bodyParser.json());
app.get('/api', function(req , res) {
createTranslation();
res.send(translator);
})
function createTranslation() {
translate('Ik spreek Engels', {to: 'en'}).then(res => {
console.log(res.text);
translator = res.text;
//=> I speak English
// players = res.text;
console.log(res.from.language.iso);
// return JSON.parse(res.body).data;;
//=> nl
}).catch(err => {
console.log("ERROR");
console.log(err);
console.error(err);
});
}
var server = app.listen(function(){
var host = server.address().address;
var port = server.address().port;
if(!host || host === "::"){
host = "localhost:";
}
console.log('API running on http://%s%s', host , port);
});
exports.app = functions.https.onRequest(app); //In Firebase
您无法使用Cloud Functions设置任意快递服务器。 这不起作用:
var server = app.listen(8081, function() { ... })
您必须通过文档中定义的触发器之一来处理输入。
另外,您不能只是在全局范围内开始调用方法并期望它们起作用:
translate(...).then(...).catch(...)
同样,您需要考虑运行代码以响应定义的触发器
您开始定义一个快速应用程序,该应用程序可能会作为HTTPS触发响应,但是它没有引起什么兴趣,只向客户端发送静态文本:
const app = express();
app.get('/api', cors(), function(req, res) {
res.end(JSON.stringify(translator));
})
exports.app = functions.https.onRequest(app); //In Firebase
如果您想学习Cloud Functions,则应该从一个简单的示例开始并添加到其中,而不是尝试逐字移植一些现有的节点应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.