在两个文件之间传递连接 - azure函数

问题描述 投票:0回答:1

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

服务器.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 };

导入连接的 azure 函数文件的顶部

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个回答
1
投票

是的,这是可能的。我已经在Azure门户上进行了测试。我创建了两个http触发函数,名为 HttpTrigger1HttpTrigger2.

HttpTrigger1 功能

enter image description here

HttpTrigger2 功能

enter image description here

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

enter image description here

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

这是我的代码,供你参考: 服务器.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
    };

};
© www.soinside.com 2019 - 2024. All rights reserved.