如何解决Gcloud 未在 nodejs 应用程序中启动 json rpc 客户端
我有一个 nodejs 应用程序,它使用 jsonrpc 集成到 simplebook.me。集成在我的本地服务器上运行良好。但是当我通过 gcloud 应用程序运行客户端时,它无法初始化。
文件:index.js: `
const JSONRpcClient = require('../json-rpc');
const apiUrl = 'https://user-api.simplybook.me';
const SIMPLYBOOK_API_KEY = "[[REDACTED]]"
const SIMPLYBOOK_COMPANY_NAME = "dssdemo"
const loginClient = new JSONRpcClient({
url: `${apiUrl}/login`,onerror: (e:any)=>logger.error(e),});
console.log("problem",loginClient);
const clientToken = loginClient.getToken(SIMPLYBOOK_COMPANY_NAME,SIMPLYBOOK_API_KEY);
logger.info('SimplyBook instantiated');`
文件:json-rpc.js
"use strict";
Object.defineProperty(exports,"__esModule",{ value: true });
const logger_1 = require("../libs/logger");
/* eslint-disable */
const jsdom = require("jsdom");
const dom = new jsdom.JSDOM('');
var jQuery = require("jquery")(dom.window);
/**
* JSON-RPC Client Exception class
*
* @param String code
* @param String message
*/
var JSONRpcClientException = function (code,message) {
this.code = code;
this.message = message;
};
JSONRpcClientException.prototype = jQuery.extend(JSONRpcClientException.prototype,{
/**
* Magic method. COnvert object to string.
*
* @return String
*/
toString: function () {
return '[' + this.code + '] ' + this.message;
}
});
/**
* JSON-RPC Client
*
* @param Object options
*/
var JSONRpcClient = function (options) {
JSONRpcClient.prototype.setOptions(options);
JSONRpcClient.prototype.init();
};
JSONRpcClient.prototype = jQuery.extend(JSONRpcClient.prototype,{
/**
* Default options
*/
options: {
'onerror': function () { },'onsuccess': function () { },'url': '','headers': {}
},current: 1,onerror: null,onsuccess: null,onstart: null,/**
* Init client
*/
init: function () {
this.onerror = this.getParam('onerror');
this.onsuccess = this.getParam('onsuccess');
this.initMethods();
},/**
* Init API methiods by url
*/
initMethods: function () {
var instance = this;
// get all methods
jQuery.ajax(this.getParam('url'),{
'async': false,'success': function (data) {
if (data.methods) {
// create method
jQuery.each(data.methods,function (methodName,methodParams) {
var method = function () {
var params = new Array();
for (var i = 0; i < arguments.length; i++) {
params.push(arguments[i]);
}
var id = (instance.current++);
var callback = params[params.length - 1];
var request = { jsonrpc: '2.0',method: methodName,params: params,id: id };
var async = false;
if (jQuery.type(callback) == 'function') {
async = true;
params.pop();
}
var res = null;
// API request
jQuery.ajax(instance.getParam('url'),{
'contentType': 'application/json','type': methodParams.transport,'processData': false,'dataType': 'json','cache': false,'data': JSON.stringify(request),'headers': instance.getParam('headers'),'async': async,'success': function (result) {
if (jQuery.type(result.error) == 'object') {
// res = JSONRpcClientException(result.error.code,result.error.message);
// instance.onerror(res);
logger_1.logger.info(result.error.message);
}
else {
res = result.result;
if (jQuery.type(callback) == 'function') {
callback(res);
}
}
instance.onsuccess(res,id,methodName);
}
});
if (!async) {
return res;
}
};
instance[methodName] = method;
});
}
else {
throw new Error("Methods could not be found");
}
}
});
},/**
* Set client options
*
* @param Object options
*/
setOptions: function (options) {
this.options = jQuery.extend({},this.options,options);
},/**
* Get client param,if param is not available in this.options return defaultValue
*
* @param String key
* @param mixed defaultValue
* @return mixed
*/
getParam: function (key,defaultValue) {
if (jQuery.type(this.options[key]) != 'undefined') {
return this.options[key];
}
return defaultValue;
}
});
module.exports = JSONRpcClient;
//# sourceMappingURL=json-rpc.js.map
我已使用 gcloud app deploy 部署了我的应用。
文件:app.yaml:
runtime: nodejs12
这是有问题的代码。 node 我的应用程序正在运行并且其他功能正常工作,但这有问题。它在本地运行但不在服务器上运行,是的端口是 8080。
here is the screenshot of error on server 但它在我的本地工作得很好 请帮助并指出我正确的方向。 谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。