gpt4 book ai didi

node.js - 通过 socket.io POST 数据到 app.js

转载 作者:IT老高 更新时间:2023-10-28 13:19:38 24 4
gpt4 key购买 nike

我想:

  • 检索从输入表单输入的数据。
  • 通过 socket.io 发送数据并发送控制台日志说完成
  • 在 express app.js 上接收数据
  • 使用 mongoose 将数据插入 mongodb 数据库。

我了解发出消息,但不确定如何发布数据。提前谢谢你

我的 app.js 是这样设置的:

//app.js config ...

var socket = io.listen(server);

socket.on('connection', function(socket) {
console.log('socket.io connected');
});



app.post('/go', function(req, res) {

socket.on('data', function(data) {
new Order({
routeFrom : data.routeFrom,
routeTo : data.routeTo,
leaving: data.leaving
}).save(function(err, docs) {
if(err) { console.log("error"); }
res.json(data);
});
socket.emit('callback', {done: 'Done'});
});

});

我的 index.ejs 文件:

  <script src="/socket.io/socket.io.js"></script>

 var socket = io.connect('http://localhost:3000');

$('#send').on('click', function() {
$.post('/go', {
socket.emit('data', {
routeFrom: $('#rf').val(),
routeTo: $('#rt').val(),
leaving: $('#l').val()
});

});

socket.on('callback', function(data) {
console.log(data);
});

});

最佳答案

你根本不需要 POST

我会在客户端做:

var socket = io.connect('http://localhost:3000');

$('#send').on('click', function(event) {
event.preventDefault();
socket.emit('data', {
routeFrom: $('#rf').val(),
routeTo: $('#rt').val(),
leaving: $('#l').val()
});
});

socket.on('callback', function(data) {
console.log(data.done);
// Print the data.data somewhere...
});

在服务器端:

//app.js config ...
var socket = io.listen(server);

socket.on('connection', function(socket) {
console.log('socket.io connected');
});

socket.on('data', function(data) {
new Order({
routeFrom : data.routeFrom,
routeTo : data.routeTo,
leaving: data.leaving
}).save(function(err, docs) {
if(err) { return console.log("error"); }
socket.emit('callback', {done: 'Done', data: data});
});
});

关于node.js - 通过 socket.io POST 数据到 app.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13802695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com