gpt4 book ai didi

node.js - Angular 6 文件上传

转载 作者:太空宇宙 更新时间:2023-11-04 01:47:07 25 4
gpt4 key购买 nike

现在已经被困在这个问题上有一段时间了。我有一个使用 Angular 6 的平均堆栈应用程序。我正在尝试将保存的文件上传到我的后端。我找到了THIS文章。但要么我收到一个类似 crypt 的错误

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> 
<title>Error</title> </head> <body> <pre>Error: ENOENT: no such file or
directory, open ''<br> at
Error (native)</pre> </body> </html>

从服务器返回或 req.file 为空,并且我的保存没有发生。我正在尝试拼凑出最好的方法来做到这一点。

谢谢

这是我的终点

app.post('/api/posts', upload.single('file'), (req, res, next) => {

const post = new Post({
title: req.body.title,
content: req.body.content,
image:req.file
});

post
.save()
.then(createdPost => {
res.status(201).json({
status: true,
id: createdPost._id,
});
})
.catch(error => {
res.status(500).json({ status: false, message: 'Didnt save ', error });
});

});

这是我如何设置 multer、网格文件流和存储

    let gfs;
conn.once('open', () => {
gfs = Grid(conn.db, mongoose.mongo);
gfs.collection('uploads');
});


const storage = new GridFsStorage({
url: connection,
file: (req, file) => {
return new Promise((resolve, reject) => {
crypto.randomBytes(16, (err, buf) => {
if (err) {
return reject(err);
}
const filename = buf.toString('hex') + path.extname(file.originalname);
const fileInfo = {
filename: filename,
bucketName: 'uploads'
};
resolve(fileInfo);
});
});
}
});
const upload = multer({ storage });

最佳答案

这与 multer 尝试创建目录有关写入正确的路径名(可能是 ./uploads/)。并确保该文件夹可写

关于node.js - Angular 6 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51030185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com