Передача данных с клиента на сервер. Express - PullRequest
0 голосов
/ 21 апреля 2020

Я немного застрял в моем express приложении.

У меня есть индекс файла. js в папке маршрутов, и я хочу сохранить результат mydata

var express = require('express');
var router = express.Router();

router.get('/', token, function(req, res, next) {
  var mydata = req.userId

  res.render('index', {
    title: 'Welcolme',
  });
});

module.exports = router;

И в другом моем файле (который зависит от приложения. js) я хотел бы получить и передать mydata на сервер

var app = require('../app');

server.listen(port, function () {
  require('../assets/js/server/socket')(server, mydata);
});

(Вот мое приложение. js)

var express = require('express');
var indexRouter = require('./routes/index');
var path = require('path');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'twig');

app.use('/', indexRouter);

module.exports = app;

И файл сокета

var io = {};

module.exports = (server, mydata) => {
  console.log('Hello : ' , mydata)

  io = require('socket.io')(server);

  io.on('connection', (socket) => {
    console.log('Connected')
  });
};

Есть ли способ сделать это?

Спасибо :)

1 Ответ

0 голосов
/ 21 апреля 2020

Возможно, вместо того, чтобы все еще иметь это route.get('/') ...

Вы можете позволить пользователю вводить данные и передавать их непосредственно через соединение WebSocket.

Пример:

//Client-side

//Get the user data somewhere from the HTML page
const userData = document.getElementbyId("some html element's id here").innerHTML;

//Send it to the back end
socket.emit('userData',userData)

//Open a listener to get the data from the back end later
socket.on('processedData',processedData=>{

//Use it in the way you desired.

});



//Server-side
io.on('connection', (socket) => {
 console.log('Connected')

socket.on('userData',userData=>{
 //Do something here, like validation and stuff

socket.emit('processedData','processedData here')
});


});




Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...