我可以在Microsoft Azure的Node.JS中使用本地“fs”文件系统吗?

我已经为Azure部署了一些nodeJS代码。 它使用Jade视图引擎,通过fs文件库提取模板:

function generateEmail(emailType, params, callback){ fs.readFile(__parentDir + '/emailTemplates/' + emailType + '.jade', 'utf8', function (err, data) { var fn = jade.compile(data); var body = fn({data: params, moment: moment}); //The data going in to the template callback(body); }); 

}

在我的Mac上,它本地正常工作,但是从Azure部署接收到的呈现的电子邮件模板显示为<undefined></undefined> 。 我担心Azure上有些时髦,我不能使用“fs”来加载文件,而可能不得不使用Blob。

这是Azure中的限制吗? 或者这个问题与这个fs.ReadFile方法无关?

作为一个健全的检查,我把它部署到Nodejitsu,它工作正常。

非常感谢!

这正是我用azure和Node.JS所遇到的问题。 我用许多节点variables挖掘出的解决scheme是使用__file。

作为一个testing这个快速的方法,你可以添加到你的app.js的东西:

 // global baseDir = __dirname; 

那么你就可以从任何地方访问这个全局variables。 即在路由器文件夹内。

 var defaultFile = path.join(baseDir, 'sample.txt'); 

__dirname总是返回当前文件的目录名称。 如果你从根文件夹中的一个文件中定义一个具有这个值的variables,你将有应用程序的基础文件夹。我已经实现了这个,它的工作我azure和heroku。