2016-06-20 22 views
0

Ich möchte die Nummer, die die Benutzereingaben auf dem lokalen Host 3000 auf localhost 8000 anzeigen. Im Moment habe ich zwei verschiedene Apps/Ports erstellt. Allerdings bekomme ich im 8000er Port ein "Kann nicht". Zum Beispiel - wenn Benutzer zu Port 3000 geht und 5 in das Textfeld eingibt. Dann sollte ein anderer Benutzer in der Lage sein, zu 8000 zu gehen und zu sehen, dass 5 eingegeben wurde.Benutzereingaben auf einen anderen lokalen Host erhalten

Knoten js

var http = require('http'); 
var express= require('express') 
var fs = require('fs'); 
var util = require('util'); 
var app= express(); 
var app2=express(); 
var multer = require('multer'); 
var dgram= require('dgram'); 
var client= dgram.createSocket('udp4'); 
var bodyParser = require('body-parser') 
app.use(bodyParser.json());  // to support JSON-encoded bodies 
app.use(bodyParser.urlencoded({  // to support URL-encoded bodies 
    extended: true 
})); 

app.get('/', function(req, res){ 
    var html = fs.readFileSync('index2.html'); 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    res.end(html); 
}); 

app.post('/', function(req,res) { 
    res.send(req.body.number); 
}); 

app2.get('/', function(req, res){ 
    res.send(); 
}); 

app2.post('/', function(req, res){ 
    res.send(req.body.number); 
}); 

//Listening to computer's IP address 
app.listen(3000, "192.168.0.172"); 
app2.listen(8000, "192.168.0.172"); 
console.log('Listening at 192.168.0.172:3000') 

Html

<html> 
    <head> 
    <title> 
     File Upload Example 
    </title> 
    </head> 
    <body> 
    <h1>Reading in Value</h1> 
    <form action="192.168.0.172:8000" method="post" enctype='multipart/form-data'> 
     <br/> 
     <label>Enter a Number</label> 
     <br/><br/> 
     <input type="text" name="number"> 
     <br/><br/> 
     <input type="submit" value="Submit" name="submit"> 
    </form> 
    </body> 
</html> 

Antwort

0

"kann nicht" Fehler ausgelöst wird, weil Sie eine POST-Route auf Ihrem app2 erklärt hatte: 8000, kein GET.

app2.get('/', function(req, res){ 
    res.status(200).json({ping: 'pong'}); 
}); 

Um die Eingangsnummer von Ihrem HTML-Formular auf Ihre app2 anzuzeigen: 8000, müssen Sie bodyparser Middleware wie folgt:

const bodyParser = require('body-parser'); 

app2.use(bodyParser.json()); 
app2.use(bodyParser.urlencoded({ 
    extended: true 
})); 
app2.post('/', function(req, res) { 
    res.send(req.body.number); 
}); 
app2.listen(8000, '192.168.0.172'); 
+0

, wie ich die Nummer erhalten Sie eingegeben auf app2 zeigen: 8000? – lord

+0

Ich habe den obigen Code aktualisiert, aber immer noch einen Fehler. – lord

+0

Sie erhalten einen Fehler, den Sie nicht erhalten können, weil Sie vermutlich versuchen 192.168.0.172: 8000 über Ihren Browser zu testen. Aber wenn das Formular gesendet wird, ist es eine POST-Abfrage. So können Sie die Eingabe in req.body erhalten. –

Verwandte Themen