正在使用nodejs-fs模块将路径添加到文件名中

path is being added to filename using nodejs fs module?

本文关键字:添加 路径 文件名 模块 nodejs-fs      更新时间:2023-09-26

我正试图创建一个文件并保存到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;

我认为传递给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文档:

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

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