node.js始めて5日目。初めてファイルに書き込んでみる
GETで受けた内容をファイルに書き込むサンプル
(Express使っています)
app.js
・・・・
var filewriter = require("filewriter");
・・・・
app.use("/filewriter",filewriter);
・・・・
/routes/filewriter.js
var fs=require("fs");
module.exports=function(req, res, next) {
fs.writeFileSync("/out/test.txt",req.query.text);
res.send("書き込みしました");
}
これで、
http://localhost:3000/filewriter?text=test
こんな風にアクセスすると、
outフォルダにtest.txtという名前のファイルが作成され、Getで渡した値が書き込まれます。
すでに同じ名前のファイルが存在する場合は、上書きされます。
実際に書き込み処理行っているのは,fs
オブジェクトのwriteFileSync
メソッドです。
writeFileSync(filename,data)
は同期処理用ですので、書き込みが終わるまで次の処理が行われません。
戻り値はundefined
です。
非同期に処理をする場合は、
writeFile(filename,data,callback)
を使い、callbackで後続の処理を行います。エラー処理とかするなら、
fs.writeFile(filename,data,function(err){
if(err) throw err;
console.log("書き込み完了");
}
とします。
POSTの場合
パラメータの受け取り方が違うだけで、同じですね。
POSTの場合は
req.body.text
として受け取ります。
なお、Postしたサイズによってはエラーが発生するかもしれません。
その場合ここを参照してみてください。
本家のドキュメントはここ