2016-07-20 8 views
0

Ich versuche, eine Datei zu erstellen und zu speichern path mit unter Code seine Datei in Datensätze Verzeichnis erstellen aber Dateiname kommt als ./app/records/server2b22f465-f7c9-4131-b462-93bc19760ab1.txt Pfad ist im Dateinamen enthalten, was ich vermisse, so kann ich nur Dateinamen ohne den Pfad in Datensätze speichern Mappe ?Pfad wird Dateiname mit Nodejs fs-Modul hinzugefügt?

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' ist, löst den Pfad relativ zum Arbeitsverzeichnis. Da Sie keine Informationen über Ihre Dateistruktur/Umgebung bereitstellen, ist es schwierig, einen Ratschlag zu geben. –

Antwort

1

Ich glaube, dass der Weg, den Sie zu fs.writeFile passieren absolut sein muss. Sie können das native Pfadmodul des Knotens verwenden, um einen relativen Pfad zu einem absoluten Pfad aufzulösen. Die Methode dazu ist path.resolve().

diese So versuchen:

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; 

Edit: fs.writeFile keinen absoluten Pfad

Nach den Knoten fs docs müssen:

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

Der relative Pfad zu Ein Dateiname kann verwendet werden. Beachten Sie jedoch, dass dieser Pfad relativ zu process.cwd()

+0

Der Pfad, den Sie an 'fs.writeFile()' übergeben, muss nicht absolut sein. Wenn es nicht absolut ist, wird es relativ zum aktuellen Arbeitsverzeichnis aufgelöst. – jfriend00

+0

Ihre Antwort funktionierte für mich, danke für die Unterstützung. – hussain