app.js
const express = require('express')
const app = express()
const port = 8080
app.set('view engine', 'ejs')
app.use(express.static('public'))
// Auto refresh
const path = require("path");
const livereload = require("livereload");
const liveReloadServer = livereload.createServer();
liveReloadServer.watch(path.join(__dirname, 'public'));
const connectLivereload = require("connect-livereload");
app.use(connectLivereload());
liveReloadServer.server.once("connection", () => {
setTimeout(() => {
liveReloadServer.refresh("/");
}, 100);
});
app.get('/', (req, res) => {
res.redirect("/home")
})
app.get('/home',(req,res)=>{
res.render("index")
})
app.use((req, res, next) => {
res.status(404).send("Sorry can't find that!")
})
app.listen(port, () => {
console.log(`Example app listening on port ${port}`);
})
package.json
{
"dependencies": {
"connect-livereload": "^0.6.1",
"ejs": "^3.1.8",
"express": "^4.18.1",
"livereload": "^0.9.3"
},"scripts": {
"start": "node app.js",
"watch": "nodemon --ext js,ejs --ignore public"
}
}
Error
error: listen EADDRINUSE: address already in use :::35729 at Server.setupListenHandle [as _listen2] (node:net:1330:16) at listenInCluster (node:net:1378:12) at Server.listen (node:net:1465:7) at Server.listen (C:\Users\islam\OneDrive\Desktop\node1\node_modules\livereload\lib\livereload.js:83:28) at Object.exports.createServer (C:\Users\islam\OneDrive\Desktop\node1\node_modules\livereload\lib\livereload.js:256:14) at Object. (C:\Users\islam\OneDrive\Desktop\node1\app.js:11:45) at Module._compile (node:internal/modules/cjs/loader:1103:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) Emitted 'error' event on Server instance at: at Server.onError (C:\Users\islam\OneDrive\Desktop\node1\node_modules\livereload\lib\livereload.js:102:19) at WebSocketServer.emit (node:events:526:28) at Server.emit (node:events:526:28) at emitErrorNT (node:net:1357:8) at processTicksAndRejections (node:internal/process/task_queues:83:21) { code: 'EADDRINUSE',
errno: -4091, syscall: 'listen', address: '::', port: 35729 } [nodemon] app crashed - waiting for file changes before starting...