-
Notifications
You must be signed in to change notification settings - Fork 3
/
server.js
152 lines (123 loc) · 3.44 KB
/
server.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
//requiring all modules
const axios = require("axios");
const express = require("express");
// const expressip = require('express-ip')
const path = require("path");
// const handlebars = require("express-handlebars");
const nodemailer = require("nodemailer");
//port and starting express
const app = express();
const PORT = process.env.PORT || 5555;
const exphbs = require("express-handlebars");
//templating language defining
app.set("view engine", "hbs");
// app.use(expressip().getIpInfoMiddleware);
app.use(express.json())
app.use(express.urlencoded({
extended: true
}))
app.use(express.static(path.join(__dirname, "assets")));
var users = [];
async function main() {
console.log('inside mailer')
console.log(users)
// Generate test SMTP service account from ethereal.email
// Only needed if you don't have a real mail account for testing
let testAccount = await nodemailer.createTestAccount();
// create reusable transporter object using the default SMTP transport
let transporter = nodemailer.createTransport({
// host: "smtp.ethereal.email",
// port: 587,
// secure: false, // true for 465, false for other ports
service: 'gmail',
auth: {
user: '*************', // generated ethereal user
pass: '*************' // generated ethereal password
}
});
// send mail with defined transport object
let info = await transporter.sendMail({
from: `${users[0].email}`, // sender address
to: `[email protected]`, // list of receivers
subject: ` SUGGESTION `, // Subject line
text: ` ${users[0].message} `, // plain text body
html: `<b> ${users[0].message} </b>` // html body
});
console.log("Message sent: %s", info.messageId);
// Message sent: <[email protected]>
// Preview only available when sending through an Ethereal account
console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
// Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
}
// get request to initial url
// will open index.hbs file
app.get("/", (req, res) => {
res.render("index", {
title: "Job Search"
});
});
app.get("/search", (req, res) => {
//query to search on api
queries = req.query;
queries['max'] = 15
console.log(queries)
//api to find job
let url = `https://indreed.herokuapp.com/api/jobs`;
if (queries) {
axios
.get(url, {
params: queries
})
.then(response => {
// console.log("inside then axios");
res.render("search", {
title: "Job Search",
jobs: response.data
});
// res.send(response.data);
})
.catch(error => {
console.log(error);
});
} else {
res.render("search", {
title: "Job Search"
});
}
});
app.get("/about", (req, res) => {
res.render("about", {
title: "Job Search"
});
});
app.get("/contact", (req, res) => {
res.render("contact", {
title: "Job Search"
});
});
app.post("/feedback", (req, res) => {
console.log('in feeback server')
console.log(req.body.name)
users.push({
name: req.body.name,
email: req.body.email,
country: req.body.country,
message: req.body.message
});
console.log(users)
main();
res.send({
});
});
//server running on port
app.listen(PORT, () => {
console.log(`Server started on http://localhost:${PORT}`);
});
app.get("//", (req, res) => {
res.render("index2", {
title: "Job Searching"
});
});
module.exports = {
users
}