These are the main three files that I am working with, but I am facing a challenge in implementing a socket IO that is compatible with netlify. Specifically, I am trying to integrate a websocket listener into my express server. Can anyone guide me on how to accomplish this?
routes.js
const users = require('./controllers/users');
const posts = require('./controllers/posts');
const files = require('./controllers/files');
const comments = require('./controllers/comments');
const chatroom = require('./controllers/chatroom');
const { jwtAuth, postAuth, commentAuth } = require('./auth');
const router = require('express').Router();
// Authentication routers
router.post('/login', users.validate(), users.login);
router.post('/register', users.validate('register'), users.register);
router.post('/forgotPassword', users.forgot);
router.post('/updatepassword', users.updatepassword);
router.post(
'/changepassword',
users.validate('changepassword'),
users.changePassword
);
module.exports = app => {
app.use('/.netlify/functions/app', router);
app.get('*', (req, res) => {
res.status(404).json({ message: 'not found' });
});
app.use((err, req, res, next) => {
if (err.type === 'entity.parse.failed') {
return res.status(400).json({ message: 'bad request' });
}
next(err);
});
};
app.js
const express = require('express');
const serverless = require('serverless-http');
const morgan = require('morgan');
const cors = require('cors');
const expressValidator = require('express-validator');
const passport = require('passport');
const localStrategy = require('./auth/local');
const jwtStrategy = require('./auth/jwt');
const app = express();
const mongoose = require('mongoose');
const config = require('./config');
const connect = url => {
return mongoose.connect(url, config.db.options);
};
if (require.main === module) {
connect(config.db.prod);
mongoose.connection.on('error', console.log);
}
app.use(cors());
app.use(express.json());
app.use(expressValidator());
app.use(morgan('common'));
app.use(passport.initialize());
passport.use(localStrategy);
passport.use(jwtStrategy);
require('./routes')(app);
module.exports.handler = serverless(app);
index.js
const app = require('./app');
const mongoose = require('mongoose');
const config = require('./config');
const connect = url => {
return mongoose.connect(url, config.db.options);
};
if (require.main === module) {
connect(config.db.prod);
mongoose.connection.on('error', console.log);
}
module.exports = { connect };
If there is anything else required for assistance, please let me know. I have been facing issues when deploying on Netlify and would appreciate any help or suggestions.