Skip to content

Commit

Permalink
KickStart
Browse files Browse the repository at this point in the history
  • Loading branch information
MostafaRastegar committed Jun 5, 2020
1 parent 8446ce0 commit 35ec6ec
Show file tree
Hide file tree
Showing 13 changed files with 987 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .env-example
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
PORT=4001
NODE_ENV=production
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules/
.env
40 changes: 40 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
var createError = require("http-errors");
var express = require("express");
var path = require("path");
var cookieParser = require("cookie-parser");
var logger = require("morgan");

var indexRouter = require("./routes/index");
// var usersRouter = require('./routes/users');

var app = express();

// view engine setup
app.set("views", path.join(__dirname, "views"));
app.set("view engine", "jade");

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);

// 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");
});

module.exports = app;
95 changes: 95 additions & 0 deletions bin/www
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
#!/usr/bin/env node

/**
* Module dependencies.
*/

var app = require('../app');
var debug = require('debug')('exp-1:server');
var http = require('http');
const dotenv = require('dotenv');
dotenv.config();
const {PORT, NODE_ENV} = process.env;


/**
* Get port from environment and store in Express.
*/

var port = normalizePort(PORT || '3000');
app.set('port', port);

/**
* Create HTTP server.
*/

var server = http.createServer(app);

/**
* Listen on provided port, on all network interfaces.
*/

server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
console.log(`Listen project on http://localhost:${port},in '${NODE_ENV}' mode`)

/**
* Normalize a port into a number, string, or false.
*/

function normalizePort(val) {
var port = parseInt(val, 10);

if (isNaN(port)) {
// named pipe
return val;
}

if (port >= 0) {
// port number
return port;
}

return false;
}

/**
* Event listener for HTTP server "error" event.
*/

function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}

var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;

// handle specific listen errors with friendly messages
switch (error.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 error;
}
}

/**
* Event listener for HTTP server "listening" event.
*/

function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}
35 changes: 35 additions & 0 deletions monogodb.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
db.createUser(
{
user: "admin",
pwd: "m.rastegar",
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
}
)

use admin
$ db.createUser(
{
user: "superAdmin",
pwd: "m.rastegar",
roles: [ { role: "root", db: "admin" } ]
})


mongo --port 27017 --authenticationDatabase "admin" -u "admin" -p


use test
db.createUser(
{
user: "tester",
pwd: "m.rastegar",
roles: [ { role: "readWrite", db: "test" },
{ role: "read", db: "reporting" } ]
}
)





mongo --port 27017 -u "tester" -p "m.rastegar" --authenticationDatabase "test"
17 changes: 17 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "exp-1",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "nodemon ./bin/www"
},
"dependencies": {
"cookie-parser": "~1.4.4",
"debug": "~2.6.9",
"dotenv": "^8.2.0",
"express": "~4.16.1",
"http-errors": "~1.6.3",
"jade": "~1.11.0",
"morgan": "~1.9.1"
}
}
29 changes: 29 additions & 0 deletions public/stylesheets/style.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
html,
body {
height: 100%;
background: #00c3b1;
}
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-items: center;
height: 100%;
justify-content: center;
}
body {
padding: 50px;
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif;
}
a {
color: #00b7ff;
}
.table {
color: #212529;
background: #f3f3f3;
margin: 35px 0;
}
.max-320 {
max-width: 320px;
margin: 150px auto;
}
34 changes: 34 additions & 0 deletions routes/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
var express = require("express");
var router = express.Router();

/* GET home page. */
router.get("/", function (req, res, next) {
res.render("index", { title: "Express" });
});

/* GET users listing. */
router.post("/bank", function (req, res, next) {
const { orderId, token, backLink, price } = req.body;
console.log({
orderId,
token,
backLink,
price,
});
// res.redirect(backLink);
res.render("bank", { title: "Bank gateway", orderId, token, price });
});
// router.get('/bank/:id/:token', function(req, res, next) {
// const { id,token, backLink } = req.params;
// // res.redirect(backLink);
// res.render('bank', { title: 'Users', id,token });
//
// });

// router.post('/user/submit', function(req, res, next) {
// const { id } = req.body;
// console.log(id);
// res.redirect(`/users/${id}`);
// });

module.exports = router;
16 changes: 16 additions & 0 deletions views/bank.jade
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
extends layout

block content
h1= title
p Welcome to #{title}
table.table.table-striped
tbody
tr
td Your orderId
td #{orderId}
tr
td Your price:
td #{price}
div.text-center
a.btn.btn-success.mr-5(href="http://localhost:4001/success/#{orderId}/#{token}") success
a.btn.btn-danger(href="http://localhost:4001/success/#{orderId}/#{token}") failed
6 changes: 6 additions & 0 deletions views/error.jade
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
extends layout

block content
h1= message
h2= error.status
pre #{error.stack}
8 changes: 8 additions & 0 deletions views/index.jade
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
extends layout

block content
h1= title
p Welcome to #{title}
form(action="/user/submit",method="post")
input(type="text", name="id")
button(type="submit") submit2
10 changes: 10 additions & 0 deletions views/layout.jade
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
doctype html
html
head
title= title
link(rel='stylesheet', href='https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css')
link(rel='stylesheet', href='/stylesheets/style.css')
body
.container
div.max-320
block content
Loading

0 comments on commit 35ec6ec

Please sign in to comment.