2016-06-20 4 views
0

Я хочу, чтобы номер, который пользователь вводил на локальный хост 3000, отображался на localhost 8000. Сейчас я создал два разных приложения/порта. Тем не менее, я получаю «не могу получить» в порт 8000. Например, если пользователь переходит на порт 3000 и вводит 5 в текстовое поле. Затем другой пользователь должен иметь возможность перейти на 8000 и увидеть, что введено 5.Получение пользовательского ввода на другой локальный хост

Node расслоение плотной

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> 

ответ

0

"не может получить" ошибка возникает, потому что вы объявили POST маршрут на вашем app2: 8000, а не GET.

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

Для того, чтобы отобразить номер входа от вашего HTML формы на ваш app2: 8000, вам необходимо bodyparser промежуточного программного обеспечения следующим образом:

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

как я получаю номер введенный, чтобы показать на app2: 8000? – lord

+0

Я обновил код выше, но все еще ошибка. – lord

+0

Вы получаете ошибку «can not get», потому что я думаю, вы пытаетесь протестировать 192.168.0.172:8000 через ваш браузер. Но когда форма отправляется, это запрос POST. Таким образом, вы можете получить вход в req.body. –

Смежные вопросы