2016-07-20 7 views
0

私はファイルを作成しようとしており、pathに以下のコードを作成してレコードディレクトリにファイルを作成しようとしていますが、ファイル名は./app/records/server2b22f465-f7c9-4131-b462-93bc19760ab1.txtになります。ファイル名にパスが含まれています。フォルダ?nodejs fsモジュールを使用してfilenameにパスを追加していますか?

main.js

var uuid = require('node-uuid'); 
var fs = require('fs'); 
var path = './app/records' 

var userLogs = function (data) { 
    var filename = 'server' + uuid.v4() + '.txt'; 
    var file = path + '/' + filename; 
    fs.writeFile(file,data,function() { 
     console.log(file); 
    }); 
    console.log('userLogs', data); 
}; 
module.exports = userLogs; 
+1

'fs.writeFile'は作業ディレクトリに対する相対パスを解決します。ファイル構造/環境に関する情報を提供していないので、アドバイスをするのは難しいです。 –

答えて

1

私はあなたが fs.writeFileに渡すパスは絶対にする必要があると考えています。 ノードのネイティブ・パス・モジュールを使用して、絶対パスへの相対パスを解決できます。これを行う方法はpath.resolve()です。

だから、これを試してみてください:

var uuid = require('node-uuid'); 
var fs = require('fs'); 
var path = require('path'); 
var filePath = path.resolve('./app/records'); 

var userLogs = function (data) { 
    var filename = 'server' + uuid.v4() + '.txt'; 
    var file = filePath + '/' + filename; 
    fs.writeFile(file,data,function() { 
     console.log(file); 
    }); 
    console.log('userLogs', data); 
}; 
module.exports = userLogs; 

編集:fs.writeFileは絶対パス

を必要としないノードFSのドキュメントによると:

https://nodejs.org/api/fs.html#fs_file_system

相対パスにしますファイル名を使用することができます。ただし、このパスは相対パスとなることを覚えておいてください。process.cwd()

+0

'fs.writeFile()'に渡すパスは、絶対パスである必要はありません。絶対パスでない場合、現在の作業ディレクトリに対して相対パスが解決されます。 – jfriend00

+0

あなたの答えはサポートのおかげで私のために働いた。 – hussain

関連する問題