为了账号安全,请及时绑定邮箱和手机立即绑定

multer v1.3.0上传报500错误

multer v1.3.0上传报500错误

POPMUISE 2019-05-25 17:18:24
我用的express框架,尝试用multer中间件做上传,原来是最基础的上传,就是varupload=multer({dest:'uploads/'}),但是我发现这上传上去的文件都是没有后缀名的16位随机字符串,我的要求是要规范化的文件命名,所以我用了multer.diskStorage对文件进行更多的操作下面是我的代码:`varexpress=require('express');varrouter=express.Router();varmulter=require('multer');//设置保存路径//varupload=multer({dest:'uploads/'})/GEThomepage./router.get('/',function(req,res,next){res.render('index',{title:'Express'});});varstorage=multer.diskStorage({destination:function(req,file,cb){cb(null,'/uploads');},filename:function(req,file,cb){cb(null,file.fieldname+"-"+Date.now());}});varupload=multer({storage:storage});router.post('/upload',upload.single('image')),function(req,res,next){varimage=req.file.path;res.send('index',{title:'Express',image:image});}module.exports=router;`我感觉这应该是最基本的demo了,但是就是报500错误,报错如下:POST/upload50016.841ms-1278Error:Failedtolookupview"error"inviewsdirectory"D:\wx_bandu\views"atEventEmitter.render(D:\wx_bandu\node_modules\._express@4.15.3@express\lib\application.js:580:17)atServerResponse.render(D:\wx_bandu\node_modules\._express@4.15.3@express\lib\response.js:971:7)atD:\wx_bandu\app.js:45:7atLayer.handle_error(D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\layer.js:71:5)attrim_prefix(D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:315:13)atD:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:284:7atFunction.process_params(D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:335:12)atnext(D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:275:10)atLayer.handle_error(D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\layer.js:67:12)attrim_prefix(D:\wx_bandu\node_modules\._express@4.15.3@express\lib\router\index.js:315:13)我看了网上很多资料,github上也看了,感觉就是找不到原因,求大神指点迷津
查看完整描述

2 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

搞了半天,本身默认的error.jade展示不出来,因为我用了pug模板,后来改过来了,错误一目了然,destination设置的路径是从硬盘根目录开始的,比如我写的是/uploads,那储存的路径就是D://uploads,因为没有这个文件夹,所以它一直报错,只要把它修改一下就好了
                            
查看完整回答
反对 回复 2019-05-25
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

500是服务器错误,app.js第45行错了,res.send('index',{title:'Express',image:image});,你准备把文件传到浏览器?
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 829 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号