我只是在探索Node.js并遇到一个问题,在创建使用multer
模块将小文件上传到内存的功能时。
我正在为MemoryStorage
使用内置的multer
选项。该文件已成功上传,并且文件元数据可在req
的{{1}}对象中访问。
现在,我希望能够从Buffer中读取文件内容,因为此文件将采用.csv格式,之后将转换为JSON。我需要文件的字符串内容来执行转换。
这是我的路由器处理程序:
ExpressJS
.csv文件已使用:
const memStorage = multer.memoryStorage();
const memUpload = multer({
storage: memStorage,
limits: { fileSize: 30 * 1024 * 2014, files: 1 }
});
router.post(
'/tables/csv',
memUpload.single('file'),
(req, res) => {
const file = req.file;
let buffer = fs.readFileSync(file.buffer);
console.log(buffer);
}
);
控制台输出:
Risk Category,Risk ID,Risk Value
Some,Some,Some
Some,Some,Some
Some,Some,Some
答案 0 :(得分:0)
您可以在调用fs.readFileSync
以获得字符串时指定编码:
fs.readFileSync(file.buffer, { encoding: 'utf8' });
或者,您不需要readFileSync
。您可以像这样致电buffer.toString(encoding)
file.buffer.toString('utf8');