【问题标题】:Passing connection between two files - azure functions在两个文件之间传递连接 - 天蓝色函数
【发布时间】:2020-05-10 19:21:57
【问题描述】:

我在尝试使用的连接文件夹中有一个 server.js 文件,并引用了我的所有 azure 函数,这样它就不会在每次 API 调用后实例化连接。我在我的天蓝色函数中导出连接并正确导入它时遇到问题。这不可能吗。如果是,我做错了什么?感谢您的帮助!

server.js

const redis = require('redis');
var mongoose = require('mongoose');
const redis = require('redis');

const client = redis.createClient(6380, process.env.REDISCACHEHOSTNAME + '.redis.cache.windows.net', {
  auth_pass: process.env.REDISCACHEKEY,
  tls: { servername: process.env.REDISCACHEHOSTNAME + '.redis.cache.windows.net' }
});

module.exports = { client };

天蓝色函数文件导入连接的顶部

const redis = require('redis');

var redisConnection = require("../connections/server")


console.log("THE CLIENT IS " + redisConnection.client.connected);


错误:client is not defined

【问题讨论】:

    标签: node.js azure azure-functions


    【解决方案1】:

    是的,这是可能的。我已经在 Azure 门户上对此进行了测试。我创建了两个 http 触发函数,分别命名为 HttpTrigger1 和 HttpTrigger2。

    HttpTrigger1函数

    HttpTrigger2函数

    看来你的代码是正确的,请检查你的函数项目目录结构,我的是

    你可以在本地测试,这里是我的代码供你参考:

    server.js 文件

    const redis = require('redis');
    
    const client = redis.createClient(6380, 'test.redis.cache.windows.net', 
            {auth_pass: 'XXXX=', tls: {servername: 'test.redis.cache.windows.net'}});
    
    module.exports = { client };
    

    功能码

    const redis = require('redis');
    
    var redisConnection = require("../connections/server")
    
    module.exports = async function (context, req) {
        context.log('JavaScript HTTP trigger function processed a request.');
        context.log("THE CLIENT IS " + redisConnection.client.connected);
        context.res = {
            // status: 200, /* Defaults to 200 */
            body: "THE CLIENT IS " + redisConnection.client.connected
        };
    
    };
    

    【讨论】:

      猜你喜欢
      • 2021-08-15
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多