我正在开发一个MERN应用程序,有一个文章组件,其中包含一些文本字段和一个预览图像。我需要将此数据存储在蒙哥数据库中。我尝试过使用multer,但是加载图像时存在问题。当我使用 fetch 在我的路线上发布图像时,出现错误 404。如何正确发布此图像并从我的数据库中获取?我的代码中有一些片段:
文章组件的 JSX:
import React from 'react';
import axios from 'axios';
class Form extends React.Component {
constructor(props) {
super(props);
}
storeImg(ev) {
ev.preventDefault();
const file = document.getElementById('previewImageInput').files;
const formData = new FormData();
formData.append('img', file[0]);
fetch("http://localhost:8080/images", { // returns an error 404
method: "POST",
body: formData
})
.then((res) => {
console.log(res)
})
.then(() => {
axios.get(`http://localhost:8080/api/images/${file[0].name}`)
.then((res) => console.log(res.data));
})
}
render() {
return (
<div>
<input
id="imageFile"
type="file"
/>
<button onClick={this.storeImage}>Submit</button>
</div>
)
}
}
图像路由
const express = require("express");
const bodyParser = require("body-parser");
const path = require("path");
const multer = require("multer");
const crypto = require('crypto');
const cors = require("cors");
const GridFsStorage = require("multer-gridfs-storage");
const Grid = require("gridfs-stream");
const app = express();
const mongoose = require('mongoose');
const router = require('express').Router();
const conn = mongoose.createConnection('mongodb://localhost/db-name');
let gfs;
conn.once("open", () => {
gfs = Grid(conn.db, mongoose.mongo);
gfs.collection("uploads");
console.log("Connection Successful");
});
白衣染霜花
相关分类