我想在我的应用程序的main.js中声明server
(非常简单):
const server = app.listen(3000, () => {
console.log("Server running")
})
并在另一个路由文件中使用它。这是针对SocketIO的,因此我可以执行以下操作:
const SocketIO = require("socket.io")
const io = SocketIO.listen(server)
io.on("connection", (socket) => {
console.log("new connection at: ", socket.id)
})
是否可以对main.js做module.exports
?
答案 0 :(得分:0)
您可以在main.js的同一目录和此文件中创建另一个js文件:
const express = require('express');
const app = express();
const server = app.listen(3000, () => {
console.log("Server running")
})
module.exports = server;
在您的main.js文件中包括该js文件。现在,假设此文件名为test.js。
const server = require('./test');
要将其包含在路由文件中,只需执行另一条带有适当路径的require语句即可。
答案 1 :(得分:0)
希望这能回答您的问题:
//Dependencies
const express = require('express');
//PORT
const port = process.env.PORT || 3005;
//Initialize the App
const app = express();
//Start the app with socket io;
const io = require('socket.io')(app.listen(port, () => {
appLog.info(`Server is listening on port ${port}`);
}));
//Export the module here
module.exports = { io };
//Make sure to load the routes that will be using socket io
//after the exports, so that the socket io is properly exported
//before it's being used in the routes
//Load Routes
const exampleRoute= require('./routes/exampleRoute');
//Use Routes
app.use('/', exampleRoute);