将数据从客户端传递到服务器。表现

时间:2020-04-21 10:02:54

标签: node.js express socket.io

我在快速申请中几乎没有卡住。

我在routes文件夹中有一个文件index.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;

然后,在我的另一个文件(取决于app.js)中,我想获取 mydata 并将其传递给服务器

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

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

(这是我的app.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 :(得分:0)

也许不是这个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')
});


});