Я использую сокеты и мне нужно вызвать внешнюю функцию из моего файла промежуточного программного обеспечения сокета.
У меня есть следующий файл rout.js:
const express = require("express");
const baskets = {};
module.exports = function(app, socketio) {
const logBasketID = basketID => {
console.log("this works" + basketID);
};
const addToBasket = (basketID, fruit) => {
var basket = baskets[basketID];
basket.fruit.push({
fruit
});
return basket;
};
app.post("/fruit/add", (req, res) => {
const fruit = req.body.fruit;
const basketID = req.body.basketID;
addToBasket(basketId, fruit);
res.status(200).send(basket);
});
};
Я пытаюсь вызвать метод logBasketID из моего файла промежуточного программного обеспечения sockets.io при получении сообщения от клиента.
Мой файл io выглядит так:
initialize = function(io) {
io.sockets.on("connection", socket => {
console.log("user connected");
socket.on("join", (roomId, callback) => {
socket.join(gameId);
console.log("user joined room: " + roomId);
});
socket.on("logBasketID", (basketId, callback) => {
console.log("user requested to remove fruit: " + basketId);
//here I want to call a function from fruitRoutes.js like
// logBasketID(basketId)
});
socket.on("disconnect", () => {
console.log("user disconnected");
});
});
};
module.exports = {
initialize
};
Я попытался запросить файл маршрутов в файле сокета, используя:
var Routes= require("../routes/fruitRoutes")
и затем вызывается Routes.logBasketID(basketID)
, но я все еще получаю ошибку.
Есть ли способ вызвать эту внешнюю функцию?