使用nodejs fs模块将路径添加到文件名?

时间:2016-07-20 20:16:13

标签: javascript node.js

我正在尝试创建一个文件,并使用以下代码保存到path,将其创建文件保存到记录目录中,但文件名随着./app/records/server2b22f465-f7c9-4131-b462-93bc19760ab1.txt路径包含在文件名中,我错过了所以我只能在没有路径的情况下将文件名保存到记录文件夹中吗?

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 个答案:

答案 0 :(得分: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不需要绝对路径

根据Node fs docs:

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

  

可以使用文件名的相对路径。但请记住,此路径将相对于process.cwd()