大きなプロジェクトの一環として、画像とテキストフィールドを単一の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;