Javascript Multer没有将文件上传到我的服务器,已经尝试了两天了,eyebag游戏在这一方面很强大

Javascript Multer没有将文件上传到我的服务器,已经尝试了两天了,eyebag游戏在这一方面很强大,javascript,node.js,express,server,multer,Javascript,Node.js,Express,Server,Multer,我不确定我到底做错了什么,好像我真的很困惑,我一直在尝试用邮递员上传图片。我在我可能有的地方留下了一些评论,嗯,搞砸了 但是,由于某些原因,图像本身没有保存到my/public/uploads文件夹中。因此,文件将被发送到服务器,但不会保存到存储器中 这是我的app.js文件 const fs = require('fs'); const path = require('path'); const cors = require('cors') const multer = require('m

我不确定我到底做错了什么,好像我真的很困惑,我一直在尝试用邮递员上传图片。我在我可能有的地方留下了一些评论,嗯,搞砸了

但是,由于某些原因,图像本身没有保存到my/public/uploads文件夹中。因此,文件将被发送到服务器,但不会保存到存储器中

这是我的app.js文件

const fs = require('fs');
const path = require('path');

const cors = require('cors')
const multer = require('multer');
const express = require('express');
const mongoose = require('mongoose');
const keys = require('./config/keys');
const formidableMiddleware = require('express-formidable');

const productRoutes = require('./routes/products-routes');
const usersRoutes = require('./routes/users-routes');
const orderRoutes = require('./routes/orders-routes');
const HttpError = require('./models/http-error');

const app = express();
const PORT = 5000;

app.use(formidableMiddleware());
app.use(cors())

app.use('/api/places', productRoutes);
app.use('/api/user', usersRoutes);
app.use('/api/orders', orderRoutes);

//did i set this up wrongly? isn't this the path to display the image back? <------
app.use(express.static('./public'));

app.use((req, res, next) => {
  const error = new HttpError('Page you requested is invalid', 404);
  throw error;
});

mongoose
  .connect(keys.mongoURI)
  .then(() => {
    app.listen(PORT);
  })
  .catch(err => {
    console.log(err);
  });
const fs=require('fs');
const path=require('path');
const cors=require('cors')
const multer=require('multer');
const express=require('express');
const mongoose=require('mongoose');
常量键=需要('./config/keys');
const formidableMiddleware=require('express-forgible');
const productRoutes=require(“./路线/产品路线”);
const usersRoutes=require(“./routes/users routes”);
const orderRoutes=require(“./routes/orders routes”);
const-HttpError=require('./models/http-error');
常量app=express();
常数端口=5000;
app.use(formidableMiddleware());
app.use(cors())
应用程序使用('/api/places',productRoutes);
app.use('/api/user',usersRoutes);
应用程序使用('/api/orders',orderRoutes);
//我是不是设置错了?这不是显示图像的路径吗?{
const error=new-HttpError('您请求的页面无效',404);
投掷误差;
});
猫鼬
.连接(钥匙,蒙古里)
.然后(()=>{
app.listen(端口);
})
.catch(错误=>{
控制台日志(err);
});
这就是我放骡子的地方,但根本不起作用

const express = require("express");
const userControllers = require('../controllers/users-controllers');
const multer = require('multer');

const router = express.Router();

const MIME_TYPE_MAP = {
     'image/png': 'png',
     'image/jpeg': 'jpeg',
     'image/jpg': 'jpg'
   };

 //I checked this a few times through a few examples, but can someone still see if I made the mistake here? <------
const upload = multer({
    storage: multer.diskStorage({
    destination: function (req, file, cb) {
    cb(null, '../public/uploads')},
    filename: function(req, file, cb){
    cb(null, file.fieldname + '-' + Date.now());
    console.log('start')
         }
     }),
    limits:{fileSize: 500000},
    fileFilter: (req, file, cb) => {
         const isValid = !!MIME_TYPE_MAP[file.mimetype];
         let error = isValid ? null : new Error('Invalid mime type!');
         cb(error, isValid);
       }
    })


//route for dashboard
router.get('/:uid', userControllers.getUser);

//route to edit dashboard
router.patch('/:uid',userControllers.updateUser);

//This one is also based on other people examples <------
router.post('/signup', upload.single("myImage"), userControllers.signUp);

//route for logging in
router.post('/login', userControllers.login);

module.exports = router;
const express=require(“express”);
const userControllers=require('../controllers/users-controllers');
const multer=require('multer');
const router=express.router();
常量MIME类型映射={
'image/png':'png',
“图像/jpeg”:“jpeg”,
'image/jpg':'jpg'
};
//我通过几个例子检查了几次,但是有人能看到我是否犯了这个错误吗?{
const isValid=!!MIME_TYPE_MAP[file.mimetype];
let error=isValid?null:新错误('Invalid mime type!');
cb(错误,有效);
}
})
//仪表板的路线
router.get('/:uid',userControllers.getUser);
//编辑仪表板的路线
router.patch('/:uid',userControllers.updateUser);

//这一个也是基于其他人的例子出于某种原因,bodyparser和Forgible没有正确解析我的formdata,切换到connect busboy并使其工作

const fs = require('fs');
const path = require('path');

const cors = require('cors')
const multer = require('multer');
const express = require('express');
const mongoose = require('mongoose');
const keys = require('./config/keys');
var busboy = require('connect-busboy');
const formidableMiddleware = require('express-formidable');

const productRoutes = require('./routes/products-routes');
const usersRoutes = require('./routes/users-routes');
const orderRoutes = require('./routes/orders-routes');
const HttpError = require('./models/http-error');

const app = express();
const PORT = 5000;

const fileStorage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, './public/uploads');
  },
  filename: (req, file, cb) => {
    cb(null, file.fieldname + '-' + Date.now());
  }
});

const fileFilter = (req, file, cb) => {
  if (
    file.mimetype === 'image/png' ||
    file.mimetype === 'image/jpg' ||
    file.mimetype === 'image/jpeg'
  ) {
    cb(null, true);
  } else {
    cb('INVALID FILE!!!', false);
  }
};

const upload = multer({ storage: fileStorage }).single('myImage')

app.use(busboy());
app.use(cors())

app.use('/api/places', productRoutes);
app.use('/api/user', usersRoutes);
app.use('/api/orders', orderRoutes);

app.use(express.static('public'));

app.post('/uploads', function(req,res,next){
  upload(req,res,function(err){   
      console.log(req.file);
      if(err){
        res.json({success:false,message:err});
      }
      else{
        res.json({success:true,message:"Photo was updated !"});
      } 
  });
})

app.use((req, res, next) => {
  const error = new HttpError('Page you requested is invalid', 404);
  throw error;
});

mongoose
  .connect(keys.mongoURI)
  .then(() => {
    app.listen(PORT);
  })
  .catch(err => {
    console.log(err);
  });

出于某种原因,bodyparser和我的formdata解析不正确,切换到connect busboy并使其正常工作

const fs = require('fs');
const path = require('path');

const cors = require('cors')
const multer = require('multer');
const express = require('express');
const mongoose = require('mongoose');
const keys = require('./config/keys');
var busboy = require('connect-busboy');
const formidableMiddleware = require('express-formidable');

const productRoutes = require('./routes/products-routes');
const usersRoutes = require('./routes/users-routes');
const orderRoutes = require('./routes/orders-routes');
const HttpError = require('./models/http-error');

const app = express();
const PORT = 5000;

const fileStorage = multer.diskStorage({
  destination: (req, file, cb) => {
    cb(null, './public/uploads');
  },
  filename: (req, file, cb) => {
    cb(null, file.fieldname + '-' + Date.now());
  }
});

const fileFilter = (req, file, cb) => {
  if (
    file.mimetype === 'image/png' ||
    file.mimetype === 'image/jpg' ||
    file.mimetype === 'image/jpeg'
  ) {
    cb(null, true);
  } else {
    cb('INVALID FILE!!!', false);
  }
};

const upload = multer({ storage: fileStorage }).single('myImage')

app.use(busboy());
app.use(cors())

app.use('/api/places', productRoutes);
app.use('/api/user', usersRoutes);
app.use('/api/orders', orderRoutes);

app.use(express.static('public'));

app.post('/uploads', function(req,res,next){
  upload(req,res,function(err){   
      console.log(req.file);
      if(err){
        res.json({success:false,message:err});
      }
      else{
        res.json({success:true,message:"Photo was updated !"});
      } 
  });
})

app.use((req, res, next) => {
  const error = new HttpError('Page you requested is invalid', 404);
  throw error;
});

mongoose
  .connect(keys.mongoURI)
  .then(() => {
    app.listen(PORT);
  })
  .catch(err => {
    console.log(err);
  });

我只是记录了文件本身,所以我知道它在注册处理程序中,所以它正确地记录了它,到底是什么问题?图像没有上载到我的文件夹中,是的,已更新以澄清您是否具有该目录上节点服务器的正确写入权限?我不推荐这样做,但试着像sudo那样运行,看看吧?我使用的是windows10,但我认为这不是问题所在。这是我自己的服务器,我测试了其他示例-它们似乎能够在我的计算机上写入。我只是记录了文件本身,所以我知道它在注册处理程序中,所以它正确地记录了它,到底是什么问题?图像没有上传到我的文件夹中,是的,为了澄清更新了您是否拥有该目录上节点服务器的正确写入权限?我不推荐这样做,但试着像sudo那样运行,看看吧?我使用的是windows10,但我认为这不是问题所在。这是我自己的服务器,我测试了其他示例——它们似乎能够在我的计算机上很好地编写