Phi*_*hil 7 javascript mongoose node.js express multer
我已经filesystem使用multer
我的服务器是node,客户端是react.
我在客户端下载和显示保存的文件时遇到问题 react
每当我这样做时,res.download(file)都会因为客户端拒绝连接而引发错误。
我的代码如下:
用户上传映射.js
const mongoose = require("mongoose");
const UserToUploadMapping = new mongoose.Schema({
userId: {
type:String,
required:true
},
file: {
type: Object,
required: true,
},
date: {
type: Date,
default: Date.now,
},
});
module.exports = mongoose.model("UserToUploadMapping", UserToUploadMapping);
Run Code Online (Sandbox Code Playgroud)
上传视频.js
const router = require("express").Router();
const multer = require('multer');
const UserToUploadMapping = require('../models/UserToUploadMapping')
let nameFile = ''
const storage = multer.diskStorage({
destination:'./Videos',
filename:(req,file,cb) => {
console.log(file)
nameFile = file.originalname + " "+ Date.now()
cb(null, nameFile)
}
})
const upload = multer({storage:storage})
router.post('/upload', upload.single('video'), async (req,res,next) => {
console.log("object")
const saveMapping = new UserToUploadMapping({
userId:'123',
file:req.file,
})
await saveMapping.save()
res.send("Video uploaded")
})
router.get('/download', async(req,res,next) => {
const x = await UserToUploadMapping.find()
// res.send(x)
res.download(x[0].path)
})
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
客户
const fetchVideo = async () => {
const resp = await axios.get(
"http://localhost:5000/api/user/video/download"
);
console.log(resp)
};
return (
<>
<NavContainer />
<div className={classes.Post}>
<Input
type="file"
onChange={(e) => uploadVideos(e.target.files)}
accept="video/mp4"
/>
{/* <Button onClick={(e) => submitHandler(e)}>Upload</Button> */}
<video></video>
</div>
</>
);
Run Code Online (Sandbox Code Playgroud)
错误
小智 1
您正在运行 2 个应用程序前端和后端,它们具有不同的端口(3000、5000),因此浏览器会阻止跨域请求。在 Express 上,您必须启用 CORS 以允许来自前端 URL (http://localhost:3000) 的请求。
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |