Node.js 想知道,如何使用Gridfs在中使用express、mongoose、mongodb上传超过16mb的文件/视频
这是我的代码,上传图像时效果很好,但每当我要上传超过16mb的视频/文件时,它都无法上传,所以怎么办,请帮助,我是初学者! 我使用了强大的中间件lodash和fs,但不知道下一步该怎么做Node.js 想知道,如何使用Gridfs在中使用express、mongoose、mongodb上传超过16mb的文件/视频,node.js,reactjs,mongodb,express,mongoose-schema,Node.js,Reactjs,Mongodb,Express,Mongoose Schema,这是我的代码,上传图像时效果很好,但每当我要上传超过16mb的视频/文件时,它都无法上传,所以怎么办,请帮助,我是初学者! 我使用了强大的中间件lodash和fs,但不知道下一步该怎么做 const Freecoursevideo = require("../models/freecoursevideo"); const formidable = require("formidable"); const _ = require("lodash&q
const Freecoursevideo = require("../models/freecoursevideo");
const formidable = require("formidable");
const _ = require("lodash");
const fs = require("fs");
exports.createFreecoursevideo = (req, res) => {
let form = new formidable.IncomingForm();
form.keepExtensions = true;
form.parse(req, (err, fields, file) => {
if (err) {
return res.status(400).json({
error: "problem with image",
});
}
//destructure the fields
const { name, description } = fields;
if (!name || !description) {
return res.status(400).json({
error: "Please include all fields",
});
}
let freecoursevideo = new Freecoursevideo(fields);
console.log(freecoursevideo);
//handle file here
if (file.video) {
if (file.video.size > 1000000000000000000000) {
return res.status(400).json({
error: "File size too big!",
});
}
freecoursevideo.video.data = fs.readFileSync(file.video.path);
freecoursevideo.video.contentType = file.video.type;
}
// console.log(freecoursevideo);
//save to the DB
freecoursevideo.save((err, freecoursevideo) => {
if (err) {
res.status(400).json({
error: "Saving Freecoursevideo in DB failed",
});
}
res.json(freecoursevideo);
});
});
};
Mongodb对可以保存到集合中的文档大小有16MB的限制 由于您试图将大于16mb的视频保存到您的
freecoursevideo
收藏中,因此出现了一个错误
解决方案:-
您必须Gridfs
才能保存大于16mb的文档
对于您的情况,我建议您删除freecoursevideo
收藏,并将所有视频保存在gridfs
中,无论其是否超过16mb。这样你就不必查询两个地方来获取视频
那么如何保存到gridfs?
- 首先,尝试使用mongoshell播放一些视频。只需导航到mongo数据库工具的
文件夹bin
bin
文件夹包含以下内容
- 在此位置打开命令提示符。通过替换,运行以下命令,
及
mongofiles--host=--port=-d=put
- 上述命令将视频保存在
和fs.files
集合中。这些集合的名称由mongo预定义,不能更改fs.chunks
- 以上练习将帮助您了解gridfs的工作原理。然后你可以继续寻找猫鼬做这件事的方法。添加到文章的链接可能会有所帮助
1000000000000000000
(100 Exa字节)?想象一下,你会把这样一段视频撕成一堆DVD。它将创造一个从地球到月球的堆栈。最好使用更真实的尺寸,如10e9
,即10GBThanks…如果答案有用,你能接受吗?是的,它很有用,非常感谢,但仍然不明白如何使用node.js/express.js实现这一点,如果你知道,请剪切你的知识,先生,你读过我共享的这篇文章吗。