/app.js (f1a2753582479d4a3d170de184da7fcbbce49c45) (2253 bytes) (mode 100644) (type blob)

let debug = require('debug')('node.js-mysql-api:server');
let http = require('http');
let createError = require('http-errors');
let express = require('express');
let path = require('path');
let cookieParser = require('cookie-parser');
let logger = require('morgan');

const IndexRouter = require("./routes/index");
const NewsRouter = require("./routes/news");

let app = express();

// port and server setup
let port = normalizePort(process.env.PORT || '8000');
app.set('port', port);

let server = http.createServer(app);
server.listen(port);
server.on('error', (err) => {
	if (error.syscall !== 'listen') {
		throw err;
	}
	
	let bind = (typeof port === 'string') ? ('Pipe ' + port) : ('Port ' + port);
	
	// handle specific listen errors with friendly messages
	switch (err.code) {
		case 'EACCES':
		  	console.error(bind + ' requires elevated privileges');
		  	process.exit(1);
		  	break;
		case 'EADDRINUSE':
		  	console.error(bind + ' is already in use');
		  	process.exit(1);
		  	break;
		default:
			throw err;
	}
});
server.on('listening', () => {
	let addr = server.address();
  	let bind = (typeof addr === 'string') ? ('pipe ' + addr) : ('port ' + addr.port);
  	debug('Listening on ' + bind);
});

function normalizePort(val) {
	let port = parseInt(val, 10);
  
	if (isNaN(port)) {
	  	// named pipe
	  	return val;
	}
  
	if (port >= 0) {
	  	// port number
		return port;
	}
	return false;
}

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.engine("html", require("ejs").renderFile);
app.set("view engine", "html");

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use("/", IndexRouter);
app.use("/news", NewsRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
	// set locals, only providing error in development
	res.locals.message = err.message;
	res.locals.error = req.app.get('env') === 'development' ? err : {};

	// render the error page
	res.status(err.status || 500);
	res.render('error', {
		error : err
	});
});

module.exports = app;


Mode Type Size Ref File
100644 blob 914 ad46b30886fa350c1f59761b100e5e4b01f9a7ec .gitignore
100644 blob 3823 c71119da8bc4ca18878a2644255a2943a0595f68 NewsWebsite.sql
100644 blob 65 fc0edb98cc538f8c2d584cabbb81abf2b4134484 README.md
100644 blob 2253 f1a2753582479d4a3d170de184da7fcbbce49c45 app.js
040000 tree - e1267e619dcd638b99cabb2758111aed6b1f9433 general
040000 tree - 312740477a6a2e13e3fe85800a7f954e70d22d75 helpers
040000 tree - d4977b7830c941e166788129aa5dfac159f4b73e models
100644 blob 109784 bd0d17580cc646deffdf8e6bad532fcd57a5b456 package-lock.json
100644 blob 540 62b755bc6925fbd31d121c6b4a3535322d801f53 package.json
040000 tree - b5a4b102e6a08ada7783cd0683abfc790b27879e routes
040000 tree - d86e002911ce5149c8bedbda7e4655b2c1de3e7a views
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/EyadMohammedOsama/News-Website

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/EyadMohammedOsama/News-Website

Clone this repository using git:
git clone git://git.rocketgit.com/user/EyadMohammedOsama/News-Website

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main