Me gustaría:
- recuperar los datos introducidos desde los formularios de entrada.
- envíe los datos a través de socket.io y envíe el registro de la consola que dice "hecho"
- recibir los datos en express app.js
- inserte los datos en una base de datos mongodb usando mangosta.
Entiendo que emito mensajes pero no estoy seguro de cómo publicar los datos. gracias de antemano
mi app.js está configurado de esta manera:
//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"});
});
});
mi archivo 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);
});
});
Respuestas
10 por respuesta № 1No necesitas POST
en absoluto.
Lo haría en el lado del cliente:
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...
});
Y en el lado del servidor:
//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});
});
});