appjs
const express = require("express");
const path = require("path");
const homeRouter = require("./routes/home.routes");
const app = express();
const port = 8000;
app.use(express.static(path.join(__dirname, "assets")));
app.use(express.static(path.join(__dirname, "images")));
app.set("view engine", "ejs");
app.set("views", "views");
app.use("/", homeRouter);
app.listen(port, () => {
console.log(`server listen on port ${port}`);
});
home routes
const router = require('express').Router()
const homeController = require('../controllers/home.controller')
router.get('/', homeController.getHome)
module.exports = router
homecontroller
const productsModel = require('../models/products.models')
exports.getHome = (req,res,next) => {
//get products
//get render index.ejs
productsModel.getAllproducts().then(products => {
res.render('index', {
products: products
})
})
}
products.models
const mongoose = require("mongoose");
const DB_URL = 'mongodb://localhost:27017/shop'
const productsSchema = mongoose.Schema({
name:String,
image:String,
price:String,
category:String,
description:String
})
const product = mongoose.model('product', productsSchema)
exports.getAllproducts = () => {
//connect to db
//get products
//disconnect
return new Promise((resolve,reject) => {
mongoose.connect(DB_URL).then(() => {
return product.find({})
}).then(products => {
mongoose.disconnect()
resolve(products)
}).catch(err => reject(err))
})
}
Error
node:events:504 throw er; // Unhandled 'error' event ^
Error: listen EADDRINUSE: address already in use:::8000 at Server.setupListenHandle [as _listen2] (node:net:1330:16) at listenInCluster (node:net:1378:12) at Server.listen (node:net:1465:7) at Function.listen (C:\Users\islam\OneDrive\Desktop\shopnode\node_modules\express\lib\application.js:635:24) at Object. (C:\Users\islam\OneDrive\Desktop\shopnode\app.js:17:5) 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) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) Emitted 'error' event on Server instance at: at emitErrorNT (node:net:1357:8) at processTicksAndRejections (node:internal/process/task_queues:83:21) { code: 'EADDRINUSE',
errno: -4091, syscall: 'listen', address: '::', port: 8000 } [nodemon] app crashed - waiting for file changes before starting...
In case we have some project running are both same port and on your server then catch this error and i have solve in that time.
open terminal set your Dir location and run this command on your terminal doing this things using this command:- pkill node
or for mac:- sudo killall -9 node
or for windows:- > killall -9 node
or
killall node
otherwise use this on your defined port modify your code var port = process.env.PORT || 8000;
var port = process.env.PORT || 8000;
do all this things then server restart npm start
or node app.js
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.