我在连接文件夹内有一个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
是的,这是可能的。我已经在Azure门户上进行了测试。我创建了两个http触发函数,名为 HttpTrigger1
和 HttpTrigger2
.
HttpTrigger1 功能
HttpTrigger2 功能
看来你的代码是正确的,请检查你的函数项目目录结构,我的是
你可以在本地测试,这是我的代码,供你参考。
这是我的代码,供你参考: 服务器.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
};
};