Meteor をバックエンドとして静的 html ジェネレーター (管理 UI を使用) を作成するというアイデアをいじっています。
トリガーされると、パブリックフォルダーに新しいファイルが作成され、作成者が html に埋め込まれた iframe で即座にレビューできるようにします。
ファイルは作成されますが、次の 2 つの副作用が発生します。
- サーバーが再起動されます。
- ファイルはキャッシュされるため、ユーザーは変更が行われたことを確認できません。
何か案は?
if (Meteor.is_client) {
Template.hello.events = {
'click input' : function () {
Meteor.call('makeFile', 'filename.html', function(error, result){
alert(result);
});
//window.location = '/filename.txt';
// template data, if any, is available in 'this'
if (typeof console !== 'undefined')
console.log("You pressed the button");
}
};
}
if (Meteor.is_server) {
var fs = __meteor_bootstrap__.require('fs');
Meteor.startup(function () {
// code to run on server at startup
});
Meteor.methods({
'makeFile': function(fileName) {
/*
fs.unlink("public/"+fileName, function (err) {
if (err) throw err;
console.log('successfully deleted ');
});
*/
fs.writeFile("public/"+fileName, "<html><body><h1>test</h1></body></html>", function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved! "+ fileName);
}
});
return fileName;
}
});
}