123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- var express = require('express');
- var fileUpload = require('express-fileupload');
- var nodemailer = require('nodemailer');
- var exec = require('ssh-exec');
- var Client = require('ssh2').Client;
- var connSettings = {
- host: 'paget.univ-littoral.fr',
- port: 22,
- username: 'etu',
- password: 'Password'
- };
- var transporter = nodemailer.createTransport({
- service: 'gmail',
- auth: {
- user: 'ptech011@gmail.com',
- pass: 'eilco700'
- }
- });
- var router = express.Router();
- // Get Homepage
- router.get('/', function(req, res){
- res.render('index');
- });
- function ensureAuthenticated(req, res, next) {
- if(req.isAuthenticated()) {
- return next();
- } else {
- res.redirect('/users/login');
- }
- }
- router.get('/compute', ensureAuthenticated, function(req, res){
- res.render('compute');
- });
- router.post('/test', function(req,res) {
- console.log(req.body);
-
- if (Object.keys(req.files).length == 0) {
- return res.status(400).send('No files were uploaded.');
- }
- var com = req.body.nIt + " " + req.body.meth + " " + (req.body.ginit ? "1": "0") + " ";
- com += (req.body.modph ? "1": "0") + " " + req.body.alpha + " " + req.body.beta;
- console.log(com);
- //var com = req.body.nIt + req.body
- // The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
- //var sampleFile = req.files.foo;
- //console.log(sampleFile.name);
- //res.redirect('/compute');
- });
- router.get('/test', function (res, res) {
- res.render('test');
-
- /*
- var conn = new Client();
- conn.on('ready', function() {
- conn.sftp(function(err, sftp) {
- if (err) throw err;
- var moveFrom = "/home/etu/Documents/DataTest/Data_syntetic_Ecume_all_Xb_200_234_Gi_New_Bounds.xlsx";
- var moveTo = "C:\\Users\\Mehdi\\Documents\\P_Tech\\Login-Register\\uploaded\\Data_syntetic_Ecume_all_Xb_200_234_Gi_New_Bounds.xlsx";
- sftp.fastGet(moveFrom, moveTo , {}, function(downloadError){
- if(downloadError) throw downloadError;
- });
- });
- }).connect(connSettings);
- */
- });
- router.post('/compute', function(req, res) {
- if (Object.keys(req.files).length == 0) {
- return res.status(400).send('No files were uploaded.');
- }
- var com = " " + req.body.nIt + " " + req.body.meth + " " + (req.body.ginit ? "1": "0") + " ";
- com += (req.body.modph ? "1": "0") + " " + req.body.alpha + " " + req.body.beta + " ";
- console.log(com);
- // The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
- var sampleFile = req.files.foo;
- sampleFile.name = sampleFile.name.replace(' ', '_');
- console.log(sampleFile.name);
- if(req.user)
- console.log(req.user);
- else console.log('no user');
- //console.log(req.user.email ? req.user.email : "no Email of user");
- //console.log(sampleFile);
- // Use the mv() method to place the file somewhere on your server
- sampleFile.mv('C:\\Users\\Mehdi\\Documents\\P_Tech\\Login-Register\\uploaded\\' + sampleFile.name, function(err) {
- if (err) return res.status(500).send(err);
- console.log("File moved");
- var conn = new Client();
- conn.on('ready', function() {
- conn.sftp(function(err, sftp) {
- if (err) throw err;
- var fs = require("fs"); // Use node filesystem
- var readStream = fs.createReadStream( "C:\\Users\\Mehdi\\Documents\\P_Tech\\Login-Register\\uploaded\\" + sampleFile.name );
- var writeStream = sftp.createWriteStream( "/home/etu/Documents/DataTest/" + sampleFile.name );
- writeStream.on('close',function () {
- console.log( "File transferred succesfully" );
- res.send('Un email vous sera envoyé contenats vos calculs, dès qu\'ils seront prêt.');
- exec('/home/etu/software/NMFbin/NMFIHM /home/etu/Documents/DataTest/'+sampleFile.name + com +'/home/etu/Documents/DataTest/Res_'+sampleFile.name, {
- user: 'etu',
- host: 'paget.univ-littoral.fr',
- password: 'Password'
- }, function (err, stdout, stderr) {
- if(err) throw err;
- console.log(stdout);
- console.log(stderr);
- var conn = new Client();
- conn.on('ready', function() {
- conn.sftp(function(err, sftp) {
- if (err) throw err;
- var moveFrom = "/home/etu/Documents/DataTest/Res_"+sampleFile.name;
- var moveTo = "C:\\Users\\Mehdi\\Documents\\P_Tech\\Login-Register\\uploaded\\Res_"+sampleFile.name;
- sftp.fastGet(moveFrom, moveTo , {}, function(downloadError){
- if(downloadError) throw downloadError;
- console.log("Succesfully uploaded");
- var mailOptions = {
- from: 'ptech011@gmail.com',
- to: req.user.email ? req.user.email : 'touimi.benj@gmail.com',
- subject: 'Résultat calcul SPAMAP',
- text: 'Bonjour,\nVeuillez trouver ci-joint les fichiers obtenus après calucl.\nCordialement.',
- attachments: [{
- filename:'Res_'+sampleFile.name,
- path: "C:\\Users\\Mehdi\\Documents\\P_Tech\\Login-Register\\uploaded\\Res_"+sampleFile.name
- }]
- };
- transporter.sendMail(mailOptions, function(error, info){
- if (error) {
- console.log(error);
- } else {
- console.log('Email sent: ' + info.response);
- }
- });
- });
- });
- }).connect(connSettings);
- })
- });
- writeStream.on('end', function () {
- console.log( "sftp connection closed" );
- conn.close();
- });
- // initiate transfer of file
- readStream.pipe( writeStream );
- });
- }).connect(connSettings);
- });
- });
- module.exports = router;
|