Tag: 谷歌应用程序内引擎

使用Node.js和Google Cloud数据存储开始使用教程时出现令牌错误

我正在用google appengine,node.js和socket.io构build一个webapp,而且我正在尝试设置一个google计算实例来使用本教程之后的google云数据存储api。 到目前为止,我已经完成了第1步和第2步,但是在本地运行下载的adams.js文件时,我得到了以下结果: Error: No access or refresh token is set. 我试过的东西: gcloud身份validationlogin(这logging我在谷歌,但没有设置我的令牌本地) 改变我出口我的DATASTORE_SERVICE_ACCOUNT和DATASTORE_PRIVATE_KEY_FILE值的方式,作为string,纯文本等 logging我的凭据在错误之前(我肯定缺less一个令牌) 创build一个新的服务帐户,并重新进行关键的创build步骤 运行curl“ 元数据/ computeMetadata / v1 /实例/服务帐户/默认/令牌 ”-D“元数据风味:谷歌”获取更多信息。 该命令给了我这个: <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx</center> </body> </html> 所以我肯定错过了一个令牌,但由于某种原因,我无法弄清楚我该如何得到它。 或者当我的应用程序部署并需要在线访问API时,我需要将其存储在哪里。 感觉这应该是一件很容易find的事情,但是由于某种原因,我正在阅读的所有文档都将我引入墙壁。 任何帮助都是极好的。

当使用'gcloud'模块时,NodeJs Google计算引擎无效ELF标头

我正在开发一个需要我使用gcloud nodejs模块的项目。 我正在使用node app在本地testing此项目,并使用gcloud preview app run app.yaml在gcloud上进行本地testing。 当我在我的文件中有下面的代码项目运行与node app但不运行gcloud使用gcloud preview app run app.yaml – 我得到一个invalid ELF Header错误。 var gcloud = require('gcloud'); 我相信该项目不会运行gcloud命令,因为它与我在项目中使用gcloud模块有关。 如果我从我的文件中删除该代码,该项目运行得很好,用gcloud命令。 我该怎么办才能解决这个问题? 我能够通过使用try-catch来获得错误 try { var gcloud = require('gcloud'); } catch (e) { e = 'Error loading required classes for gcloud: '+gcloud+ ': '+e console.log(e) res.status(200).send(e); } 错误: Error loading required classes […]

Google云端应用程序引擎上的节点应用程序在低于1024的端口上侦听

我创build了一个运行节点应用程序的应用程序引擎,该应用程序提供一些html,css和javascript。 我希望我的节点应用程序侦听端口443.但是,如果我在8080以外的端口上运行它,我的节点应用程序会给出503错误 我在网上search,认为有一个服务,接受端口80客户端的请求(我不知道服务在哪里运行)。 此服务将这些请求redirect到虚拟机的8080端口。 这是运行我的节点应用程序的虚拟机。 如果我错了,请纠正我。 那么我怎样才能改变该服务的configurationredirect传入的请求到端口443我的应用程序?

使用Google云端存储存储的图片的属性

我正在使用NPM文档将图像上传到Google云端存储 app.post('/test', upload.single('image'), function (req, res, next) { }); let bucket = gcs.bucket('bucket-name'); bucket.upload(req.file.path, function(err, file) { if (err) { throw new Error(err); } console.log(file); }); console.log(req.file); // req.body will hold the text fields, if there were any }) 有什么办法可以指定我上传的文件的自定义名称和文件types? 在我的情况下,它应该是一个图像。

ENOENT从App Engine连接到Google Cloud SQL时

我正在尝试在Google App Engine上部署Node.js应用程序,并且部署正常,但由于某些原因无法连接到Google Cloud SQL。 以下是它抛出的: Error: connect ENOENT /cloudsql/my-project-id:asia-east1:my-sql-instance 以下是我如何configuration连接: if (process.env.INSTANCE_CONNECTION_NAME) { exports.mysqlConfig = { user: process.env.GCLOUD_SQL_USERNAME, password: process.env.GCLOUD_SQL_PASSWORD, socketPath: '/cloudsql/' + process.env.INSTANCE_CONNECTION_NAME } } else { // Use settings for localhost } 我正在使用node-mysql模块连接到数据库。 App Engine和Cloud SQL已经在同一个项目中。 我的理论是App Engine和Cloud SQL必须在同一个项目和同一个区域,但是我不确定。

如何使用Node API从Google Cloud Storage返回指定的图像大小?

我正在使用云存储,并且运行良好,我只是不想每次都返回完整大小的图像。 我想知道是否有一种方法来指定一个宽度来调整图像的大小,当我请求它? 这是工作代码。 我只需要返回较小的图像,比如300px宽(保持原始高宽比)。 这个数字可能会改变或波动,所以我不想保存大量不同的版本,除非我绝对必须。 var fileName = "Image.png"; var stream = bucket.file(fileName).createReadStream(); res.writeHead(200, { 'Content-Type': imageInfo.mime_type }); stream.on('data', function (data) { res.write(data); }); stream.on('error', function (err) { console.log('error reading stream', err); }); stream.on('end', function () { res.end(); }); 我发现这个网站解释了如何在PHP中做到这一点,所以我猜可能有一种方法在节点中做到这一点? https://cloud.google.com/appengine/docs/standard/php/googlestorage/images

无法在Google应用引擎上运行nodejs项目

我刚刚开始与nodejs的谷歌应用程序引擎。 我创build了一个在我的机器上正常工作的本地项目。 如果我打了 HTTP://本地主机:7000 /业务/用户/的getUser 它返回一个json对象。 我已经在谷歌应用程序引擎上部署了相同的项目 gcloud app deploy 现在,当我打 http://help-coin.appspot.com/services/user/getuser 它正在显示 Error: Server Error The server encountered a temporary error and could not complete your request. Please try again in 30 seconds. 我已经检查了服务器上的日志 Load controllers from path '/app/app/services' non recursive. ——–make-runnable-output——– undefined ———————————— Up and running on port 7000 Loading controller 'UserService.js'. 服务器端没有错误。 […]

NodeJS未处理的承诺拒绝

我有一个方法getModel(kind) ,在NodeJS中返回一个数据存储数据模型。 我在getModel(kind)方法中做了一个简单的type-o,发现了未被捕获的承诺拒绝的根本问题。 我如何更新代码来捕获未来的未捕获的exception? 调用getModel: //Save the data to the database getModel('transferrequest').create(TransferRequestNew, (err, savedData) => { if (err) { console.log('Transfer Request New unable to create new entity. Error message: ', err); next(err); return; } console.log('savedData: ', savedData); res.redirect(`${req.baseUrl}/history`); }); getModel函数: function getModel(kind) { const model = __modelsdir+'/model-'+__databackend+kind; return require(model); } 使用getModel.create调用创build方法: function create (data, cb) […]

修改示例Hello World Node.js代码在Google Compute Engine中不起作用

我想了解计算引擎的工作机制,以便在Node.js中编写一个在Compute Engine中运行的WebSocket。 为了做到这一点,我首先运行(npm start)示例Hello World项目,并开始工作。 然后,我尝试将“.send(”Hello World!“)”改为“.send(”Hello World2!“)”并再次运行,但是我得到了“Hello World! 再次,即使我改变了源代码。 当我尝试“git commit”时,我得到了“你的分支是最新的”。 然后在尝试“git pull”之后加上“git push”,我仍然得到了“Hello World!” 作为输出。 如何修改代码并使其运行修改后的代码? Hello World提供的示例代码 var express = require('express'); var app = express(); // [START hello_world] // Say hello! app.get('/', function (req, res) { res.status(200).send('Hello, world!'); }); // [END hello_world] if (module === require.main) { // [START server] // Start […]

从Node.JS连接到Google Cloud SQL的正确方法

我遵循了关于如何设置Node.JS来使用Cloud SQL的示例,并且通常可以使用它,但是有关如何连接到SQL Server的一些解决方法。 我无法以正确的方式将INSTANCE_CONNECTION_NAME传递给createConnection()方法的optionsvariables的socketPath选项。 相反,作为临时的解决方法,我目前指定服务器的IP地址,并将我的虚拟机IP地址放入服务器的防火墙设置中,以便让其通过。 这一切工作,但我现在试图把它发布到AppEngine之前正确地放在一起。 我怎样才能使它工作? 下面的代码工作正常: function getConnection () { const options = { host: "111.11.11.11", //IP address of my Cloud SQL Server user: 'root', password: 'somePassword', database: 'DatabaseName' }; return mysql.createConnection(options); } 但是下面的代码,我从教程和教程中提到的Github页面合并,给出了错误: function getConnection () { const options = { user: 'root', password: 'somePassword', database: 'DatabaseName', socketPath: '/cloudsql/project-name-123456:europe-west1:sql-instance-name' }; return mysql.createConnection(options); […]