Expressjs bodyParser 和 connect-form
Posted
技术标签:
【中文标题】Expressjs bodyParser 和 connect-form【英文标题】:Expressjs bodyParser and connect-form 【发布时间】:2012-01-18 20:41:28 【问题描述】:我正在使用连接表单上传图片。但如果我使用bodyParser()
,它就不起作用。
反过来,如果我不使用 bodyParser,我不能上传文件?
如何让他们一起玩?这是我的配置:
app.configure(function()
app.register('.html', require('ejs'));
app.set('views', __dirname + '/../views');
app.set('view engine', 'html');
app.use(gzippo.staticGzip(__dirname + '/../public'), maxAge: 86400000 );
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(form(
keepExtensions: true,
uploadDir: __dirname + '/../tmp'
));
app.use(express.cookieParser());
app.use(express.session(
secret: 'test',
cookie: secure: true ,
store: new mysqlSessionStore(client.database, client.user, client.password)
));
app.use(expressValidator);
app.use(app.router);
app.use(express.csrf());
);
【问题讨论】:
【参考方案1】:如果您使用的是最新的 Express,则不需要包含 connect-form(自 Connect 1.8.x 起已弃用)。
只需在您的路由中使用 req.files 即可获取上传的文件,其余的由 Express 完成。看看这篇文章:
http://tjholowaychuk.com/post/12943975936/connect-1-8-0-multipart-support
【讨论】:
哦,太好了 :) 但现在我的文件名有问题。使用req.files.image.filename
,我在上传之前获得了图像的名称。它被重命名为随机字符串或之后的东西。那个套装在哪里?似乎找不到关于该主题的任何内容?
您将获得图像的名称和路径。只需将该图像从临时位置移动到所需位置即可:)
链接失效了,最好把答案放在这里而不是粘贴链接
链接现在是tjholowaychuk.tumblr.com/post/12943975936/… 但我认为整个方法现在已经过时了,搜索node.js express multipart。我最终使用了 multer以上是关于Expressjs bodyParser 和 connect-form的主要内容,如果未能解决你的问题,请参考以下文章
使用async/await——Nodejs+ExpressJs+Babel
将 Google Cloud Platform 的错误报告与 ExpressJS 一起使用
Passport AngularJS ExpressJS:Access-Control-Allow-Origin 不允许 Origin null