var form = {
widgetReleaseId: req.body.widgetReleaseId,
version: req.body.version,
uploadDate: req.body.uploadDate,
myfiles : myfiles
};
以下はnpmリクエストです。
request.post(
{
url:target_url+'widget-releases/',
formData:form
}, function optionalCallback(err, httpResponse, body) {
console.log('body'+body)
if (err) {
console.log(err)
}
del(['uploads/'+req.session.loginuser+'**/*'], function (err, paths) {
console.log('Deleted files/folders:\n', paths.join('\n'));
});
res.redirect('/admin-ui/widget-release/add');
});
Api は、別の nodejs サーバーで「投稿」を公開しました。.multer を使用して作成されたはずのフォルダーからファイルを読み取っているときにエラーが発生します。req.body.widgetReleaseId は「未定義」であるため、ファイルをコピーするためのフォルダーを作成していません
router.post('/',multer({
dest: './public/api/downloads/',
changeDest: function(dest, req, res) {
dest += req.body.widgetReleaseId;
var stat = null;
try {
stat = fs.statSync(dest);
} catch (err) {
mkdirp.sync(dest);
}
if (stat && !stat.isDirectory()) {
throw new Error('Directory cannot be created because an inode of a different type exists at "' + dest + '"');
}
return dest;
},
rename: function(fieldname, filename, req,res){
return filename.replace(/\W+/g, '-');
},
onFileUploadStart: function (file, req, res) {
console.log(file.fieldname + ' is starting ...')
},
onFileUploadComplete: function (file, req, res) {
console.log(file.fieldname + ' uploaded to ' + file.path)
} ,
onError: function (error, next) {
console.log(error)
next(error)
}
}), function(req,res) {
//code goes here..
fs.readdir('./public/api/downloads/'+req.body.widgetReleaseId,function(err,files ){
....
});
本文パーサーの設定は正しく、ルーティングの前です。数日前に動作していましたが、nodejsサーバーにformDataでデータが入っていないため、エラー:ENOENTエラーが発生しました。どんな手掛かり?キャッシュを消去し、プロジェクトも更新しました。