server.js:
const express = require('express');
const multer = require('multer');
const path = require('path');
const fs = require('fs');
const cors = require('cors');
const app = express();
const upload = multer({ dest: 'uploads/' });
// 如果uploads目录不存在,则创建它
const uploadDir = 'uploads';
if (!fs.existsSync(uploadDir)){
fs.mkdirSync(uploadDir);
}
// 允许跨域请求
app.use(cors());
// 提供静态文件服务
app.use(express.static('public'));
// 处理图片上传
app.post('/upload', upload.single('image'), (req, res) => {
const file = req.file;
const targetPath = path.join(__dirname, 'uploads', file.originalname);
fs.rename(file.path, targetPath, (err) => {
if (err) {
return res.status(500).send({ message: '文件上传失败' });
}
const imageUrl = `http://localhost:3000/uploads/${file.originalname}`;
res.send({ url: imageUrl });
});
});
// 启动服务器
app.listen(3000, () => {
console.log('服务器正在运行在 http://localhost:3000');
});