bonjour,
je suis entrain de réaliser un serveur web avec node.js sur système ubuntu 14.04 qui permet de recevoir une image d’après une appareille mobile.

toujours je reçois cet message " ERROR - Invalid response code from server 413" au niveau de la terminale. Par contre, lorsque j’accède par une page web , il marche sans problème.
Donc j'ai pas pu comprendre ou se trouve le problème , merci de m'aider.

TypeError: Cannot read property 'image' of undefined
    at Object.handle (/home/syrine01/Public/cloud_solution/routes/routes.js:18:26)
    at next_layer (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/route.js:103:13)
    at Route.dispatch (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/route.js:107:5)
    at c (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:195:24)
    at Function.proto.process_params (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:253:12)
    at next (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:189:19)
    at next (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:166:38)
    at Layer.methodOverride [as handle] (/home/syrine01/Public/cloud_solution/node_modules/method-override/index.js:79:5)
    at trim_prefix (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:230:15)
    at c (/home/syrine01/Public/cloud_solution/node_modules/express/lib/router/index.js:198:9) ```

coté l'outil android studio:
" 12920-13729/com.hackerkernel.imageupload E/Request: ERROR java.net.ConnectException: failed to connect to /10.x.x.x (port 8080) after 30000ms: isConnected failed: ECONNREFUSED (Connection refused)
"
mon code qui assure l'up d'une image d'prés une apparielle mobile:

app.post('/up', function(req, res) {
    console.log(req.files.image.originalFilename);
    console.log(req.files.image.path);
        fs.readFile(req.files.image.path, function (err, data){
        var dirname = "/home/syrine01/Public/cloud_solution/file_upload";
        var newPath = dirname + "/uploads/" +req.files.image.originalFilename;
        fs.writeFile(newPath, data, function (err) {
        if(err){
        res.json({'response':"Error"});
        }else {
        res.json({'response':"Saved"});
}
});
});
});```

3 réponses


est ce que ton systeme ubuntu accepte les connexions exterieurs ?

"connexion refused" ca veux bien dire ce que ca veux dire ^^

un serveur web ecoute généralement sur le port 127.0.0.1 => localhost.
de ta machine vers ta machine.

de ton téléphone vers ta machine il te faut une conf supplémentaire niveau apache ou nginx

nginx
listen 80;
server_name site1.local.dev 127.0.0.1 192.168.1.12; #site1.local.dev => nom de domaine local, 127.0.0.1 ton localhost, 192.168.1.12 => l'adresse ip de ta machine
root /var/www/local.dev/site1;

maintenant depuis ton telephone, si tu tape 192.168.1.12 dans l'url, tu devrai tomber sur ton vhost.

pour apache, recherche au niveau du listen egalement, et des allow/deny

emile01
Auteur

merci Keulu pour la réponse mais j'ai une petite question; est-ce -que aprés l'instllation de nginx je dois mettre le contenu du code "nodejs" dans le répartoire "www" qui va faire l'upload d'une image,

merci

emile01
Auteur

j'ai essayé de faire comme tu as dit et donc j'ai creé le serveur nodejs (la 1ére fois j'utlise) sur le port 80 et ip; 127.0.0.1 du nginx
mais le probléme que j'ai lorsque je lance mon fichier "app.js" il affiche le message d'erreur suivant

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EACCES
    at errnoException (net.js:905:11)
    at Server._listen2 (net.js:1024:19)
    at listen (net.js:1065:10)
    at net.js:1147:9
    at dns.js:72:18
    at process._tickCallback (node.js:458:13)
    at Function.Module.runMain (module.js:499:11)
    at startup (node.js:119:16)
    at node.js:945:3

voilà mon code en nodejs concerant le config du serveur:


// Configuration (Express 4.0)
var express        = require('express');
var morgan         = require('morgan');
var bodyParser     = require('body-parser');
var methodOverride = require('method-override');
var connect = require('connect');
var app            = express();

var ipaddress = process.env.OPENSHIFT_NODEJS_IP || "127.0.0.1";
var port = process.env.OPENSHIFT_NODEJS_PORT || 80;

app.use(express.static(__dirname + '/public'));     
app.use(morgan('dev'));                     
app.use(bodyParser.urlencoded({ extended: false }))    
app.use(bodyParser.json())    
app.use(methodOverride());                 

// Routes
require('./routes/routes.js')(app);

app.listen(port,ipaddress);
console.log('The App runs on port 80');