Node Js Server Setup
///////////Create server.js file /////////////
const bodyParser = require("body-parser");
const cors = require("cors");
const expressValidator = require('express-validator');
const app = express();
const db = require("./app/models");
const seeder = require("./app/seeders");
const alterTable = require("./app/models/alterTables");
const { port,databaseMigration } = require('./app/config/env.config');
var path = require('path');
var corsOptions = {
origin: "*"
};
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(cors(corsOptions));
//*For Db Migration */
if(databaseMigration=="Yes"){
db.sequelize.sync({ force: true }).then(() => {
console.log("Drop and re-sync db.");
alterTable.userTable();
seeder.FormsSeeder()
});
}
// parse requests of content-type - application/json
app.use(express.json());
app.use(bodyParser.json({ limit: '50mb' }));
// parse requests of content-type - application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
// simple route
app.get("/", (req, res) => {
res.json({ message: "Welcome to Easyform" });
});
app.use("/public", express.static(path.join(__dirname, 'public')));
require('./app/routes/index.routes')(app);
// set port, listen for requests
const PORT = port || 4000;
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}.`);
});
//////////create node js env file //////////////
#============Node Environment============
NODE_ENV=development
#============JWT Details ============
JWT_EXPIRE_TIME = 86400 # 86400=24 hours
JWT_SECRET_KEY = hobucksKey
#============Server port============
PORT=4000
#============Database Details============
DATABASE_ENV = local
DATABASE_MIGRATION = NO
LOCAL_DATABASE_HOST=localhost
LOCAL_DATABASE_USER=root
LOCAL_DATABASE_PASS=
LOCAL_DATABASE_NAME=easyforms
DATABASE_HOST=
DATABASE_USER=
DATABASE_PASS=
DATABASE_NAME=
#============Mail Details============
MAIL_HOST = smtp.mailtrap.io
MAIL_PORT =
MAIL_USER =
MAIL_PASS =
FROM_MAIL =
FROM_NAME =
#============Mail Details============
BASE_URL = http://localhost:4000/
///////Create config Folder then create auth.configuration.js file/////////
const envConfig = require("./env.config");
module.exports = {
secret: envConfig.JwtSecretKey
};
////// Create db.config. js file//////////
const envConfig = require("./env.config");
module.exports = {
HOST: envConfig.databaseHost,
USER: envConfig.databaseUser,
PASSWORD: envConfig.databasePass,
DB: envConfig.databaseName,
dialect: "postgres",
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
};
//////Create env.config. js ///////
const dotenv = require('dotenv');
dotenv.config();
module.exports = {
//============Node Environment============
nodeEnv: process.env.NODE_ENV,
//============JWT Details ============
JwtExpireTime: process.env.JWT_EXPIRE_TIME*30,
JwtSecretKey: process.env.JWT_SECRET_KEY,
//============Server port============
port: process.env.PORT,
//============Database Details============
databaseHost: process.env.DATABASE_HOST,
databaseUser: process.env.DATABASE_USER,
databasePass: process.env.DATABASE_PASS,
databaseName: process.env.DATABASE_NAME,
//============Mail Details============
// mailHost: process.env.MAIL_HOST,
// mailPort: process.env.MAIL_PORT,
// mailUser: process.env.MAIL_USER,
// mailPass: process.env.MAIL_PASS,
// fromMail: process.env.FROM_MAIL,
// fromName: process.env.FROM_NAME,
};
///////Create Model folder then create model file //////
module.exports = (sequelize, Sequelize) => {
const AllowanceType = sequelize.define("allowance_types", {
allowanceTypeId: {
type: Sequelize.INTEGER(20),
autoIncrement: true,
primaryKey: true
},
type: Sequelize.INTEGER(20),
},
allowanceName: {
type: Sequelize.STRING
},
allowanceImage: {
type: Sequelize.STRING
},
});
return AllowanceType;
};
Comments
Post a Comment