如何在Azure功能应用程序中的文件之间共享代码(例如,Mongo架构定义)?
我需要这样做,因为我的函数需要访问共享的mongo架构和模型,例如这个基本示例:
var blogPostSchema = new mongoose.Schema({
id: 'number',
title: 'string',
date: 'date',
content: 'string'
});
var BlogPost = mongoose.model('BlogPost', blogPostSchema);
我已尝试在我的"watchDirectories": [ "Shared" ]
添加host.json
行,并在该文件夹中添加了包含上述变量定义的index.js
,但这似乎并不是可用于其他功能。
我只是得到Exception while executing function: Functions.GetBlogPosts. mscorlib: ReferenceError: BlogPost is not defined
。
我也试过require
.js文件,但似乎找不到。可能是我错了路径。
有没有人有关于如何在azure函数之间共享.js
代码的示例或提示?
答案 0 :(得分:6)
我通过执行以下步骤解决了这个问题:
hosts.json
到watch
共享文件夹中添加一行。 "watchDirectories": [ "Shared" ]
blogPostModel.js
文件
醇>
<强>共享\ blogPostModel.js 强>
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var blogPostSchema = new Schema({
id: 'number',
title: 'string',
date: 'date',
content: 'string'
});
module.exports = mongoose.model('BlogPost', blogPostSchema);
require
中,共享文件包含以下路径:
var blogPostModel = require('../Shared/blogPostModel.js');
然后,我可以在每个单独的函数中建立连接并与执行find
等的模型进行交互。
此解决方案由以下SO帖子组成: