2017-11-29 2 views
0

大きなプロジェクトの一環として、画像とテキストフィールドを単一のHTML POSTフォームを使用してサーバーにアップロードする必要があります。これを行うために、Formidableを使用してデータを処理することにしました。しかし、私がこれを行うと、プログラムは不可解なエラーを投げます。このエラーは、var form = new formidable.IncomingForm();行を実行しているときに、formidable.IncomingForm()が有効なコンストラクタではないことをアプリケーションが示しているということです。これが私にとって大変な理由は、Formidableのドキュメントのすべてがフォームを初期化する方法であるということです。あなたが私を助けることができれば、それは素晴らしいことでしょう。Node.JSサーバーでエラーが発生し、HTMLサーバーでExpressを使用していて、multipartで処理可能なフォームがありません

//Adds new rock to database 
 
var express = require('express'); 
 
var router = express.Router(); 
 
var fs = require('fs'); 
 

 
const formidable = require('express-formidable'); 
 
//const pool = require('../pool_handler'); 
 

 
router.use(formidable()); 
 

 
console.log('fileUpload module loaded'); 
 
/* POST page. */ 
 

 
router.post('/', function(req, result, next) { 
 
\t console.log('inside POST request'); 
 

 
\t console.log(req.files); 
 

 
\t if(!req.files) { 
 
\t \t return next('/success'); 
 
\t } 
 

 
\t var form = formidable.IncomingForm(); 
 

 
\t console.log('after the form issue'); 
 

 
\t form.parse(req, function (err, fields, files) { 
 
\t \t var oldpath = files.image.path; 
 
\t \t var newpath = '../public/images/' + files.image.name; 
 
\t \t fs.rename(oldpath, newpath, function(err) { 
 
\t \t \t if(err) { 
 
\t \t \t \t throw err; 
 
\t \t \t } 
 
\t \t }); 
 

 
\t }); 
 

 
\t next('/success'); 
 
\t 
 
}); 
 

 
router.all('/', function(req, result) { 
 
\t result.render('addNewRock'); 
 
}); 
 

 
router.all('/success', function(req, result) { 
 
\t result.send('success!'); 
 
}) 
 

 
module.exports = router;

答えて

0

私は私の英語のために、私は非常によく書かないでい謝罪しています。しかし、私はあなたを助けることを期待しました。

私の場合、私はそのライブラリ(express-formidable)を使用しようとしていますが、互換性に非常に問題があり、非常に難解です。

私のsugestionは、あなたが必要とするすべての機能を提供し、npmのページに実装するためのすべての情報が含まれている "強力な"ライブラリを使用しています。

チェックformidable

関連する問題