我使用Meteor 0.6.4.1并使用Npm.require('fs')
和fs.writeFile()
来保存文件。以下是我用来测试它的代码:Gist for save files。我将Meteor更新为0.6.5.1并收到此错误:
(STDERR) app/server/save_file.js:18
(STDERR) throw (new Meteor.Error(500, 'Failed to save file. ' + err));
(STDERR) ^
(STDERR) Error: Failed to save file. Error: ENOENT, open 'public/carlos.png' [500]
(STDERR) at Meteor.methods.saveFile (app/server/save_file.js:18:16)
(STDERR) at fs.writeFile (fs.js:746:21)
(STDERR) at Object.oncomplete (fs.js:297:15)
我知道Meteor 0.6.5上的节点版本从0.8.18变为0.8.24。这是0.8.24节点版本或Meteor 0.6.5版本的错误?它有什么方法可以解决它,或者我必须使用0.6.4.1 Meteor版本?
答案 0 :(得分:4)
在Meteor 0.6.5中,他们更改了服务器上下文中的当前工作目录,它曾经是Meteor根目录,但它现在是MyProject/.meteor/local/build/programs/server
。
因此,如果您想从服务器端应用访问公共文件夹中的内容,可以尝试以下路径:../../../../../public/
。
警告:将文件写入public
可能会导致服务器重新启动并导致未定义的行为。