Я могу загрузить файл через почтальона и загрузить файл с сервера в двух разных сервисах .. Но мне нужно ... За один вызов я должен загрузить файл на сервер, а затем выполнить некоторую операцию после выполнения некоторой операции, которую я должен возможность загрузить файл автоматически. Вот мой код.
Моя первая услуга (операция загрузки файлов)
var express = require('express');
var fs = require('fs');
var formidable = require('formidable');
var router = express.Router();
/* GET home page. */
router.post('/', function(req, res, next) {
var form = new formidable.IncomingForm();
form.uploadDir = "./file"
form.keepExtensions=true;
form.maxFileSize=10*1024*1024;
form.multiples=false;
form.parse(req, function (err, fields, files) {
res.write('File uploaded');
res.end();
});
});
module.exports = router;
Скачать сервис
var express = require('express');
var router = express.Router();
var express = require('express');
router.get('/', function(req, res, next) {
var file = './file/myOutput.txt';
var name = 'ENC.txt'
res.download(file, name);
});
module.exports = router;
Теперь мне нужно сделать эти две службы как одну?





var express = require('express');
var formidable = require('formidable');
var app=express();
async function calculation(parameters)
{
if (parameters)
{
//Here you can do calculation depending upon parameter values
}
else
{
//Display error or as per your choice
}
}
app.get('/',function(req,res){
res.sendFile(__dirname+'/index.html');
});
async function cal(res,file,form)
{
try{
const data = await calculation(true)
if (data){
res.set({
'Location' : __dirname+'/index.html',
});
res.download( __dirname+file.name);
}
}
catch(error)
{
console.info(error);
}
}
app.post('/',function (req,res){
var form = new formidable.IncomingForm();
form.parse(req);
form.on('fileBegin',function(name,file){
file.path = __dirname+file.name;
console.info("Uploading");
});
form.on('file',
function(name,file)
{
console.info('Uploaded ',file.name);
cal(res,file);
});
});
Надеюсь, поможет