Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This is serverside
- router.post("/results", function (request, response) {
- let item = request.body;
- let applicant_name = request.body.firstName;
- client.connect(function (err) {
- const db = client.db("myFirstDatabase");
- assert.equal(null, err);
- db.collection("residents").insertOne(item, function (err, result) {
- assert.equal(null, err);
- console.log("Item inserted");
- });
- });
- client.connect(function (err) {
- const db = client.db("myFirstDatabase");
- assert.equal(null, err);
- db.collection("residents")
- .find({})
- .toArray(function (err, resident) {
- if (err) throw err;
- compatability(request, resident);
- });
- });
- client.close();
- response.render("pages/results", {
- applicant_name: applicant_name,
- resident: fitness,
- });
- });
- let fitness = [];
- function compatability(request, resident) {
- for (let i = 0; i < resident.length; i++) {
- let array = [];
- let sum = 0;
- let X1 = x1(
- request.body.planVisitorsRoommate,
- resident[i].planVisitors
- );
- let X2 = x2(
- resident[i].planVisitorsRoommate,
- request.body.planVisitors
- );
- let X3 = x3(request.body.preferStudy, resident[i].preferStudy);
- let X4 = x4(request.body.bedtime, resident[i].bedtime);
- let X5 = x5(request.body.roommateGender, resident[i].gender);
- let X6 = x6(resident[i].roommateGender, request.body.gender);
- let X7 = x7(
- request.body.preferInternational,
- request.body.roommateLanguage,
- resident[i].roommateLanguage
- );
- let X8 = x8(
- resident[i].preferInternational,
- resident[i].roommateLanguage,
- request.body.roommateLanguage
- );
- let X9 = x9(request.body.preferredAgeRange, resident[i].age);
- let X10 = x10(resident[i].preferredAgeRange, request.body.age);
- let X11 = x11(request.body.btnradio4, resident[i].btnradio4);
- let X12 = x12(
- request.body.roommateMajor,
- request.body.major,
- resident[i].major
- );
- let X13 = x13(
- resident[i].roommateMajor,
- resident[i].major,
- request.body.major
- );
- let X14 = x14(
- request.body.roommateSemester,
- request.body.semester,
- resident[i].semester
- );
- let X15 = x15(
- resident[i].roommateSemester,
- resident[i].semester,
- request.body.semester
- );
- array[0] = X1;
- array[1] = X2;
- array[2] = X3;
- array[3] = X4;
- array[4] = X5;
- array[5] = X6;
- array[6] = X7;
- array[7] = X8;
- array[8] = X9;
- array[9] = X10;
- array[10] = X11;
- array[11] = X12;
- array[12] = X13;
- array[13] = X14;
- array[14] = X15;
- for (let j = 0; j < 15; j++) {
- sum += array[j] * weightings[j];
- }
- let fit = {
- fitness: Math.round(sum * 100),
- email: resident[i].email,
- name: resident[i].firstName + " " + resident[i].lastName,
- };
- fitness.push(fit);
- }
- fitness.sort((a, b) => (a.fitness < b.fitness ? 1 : -1));
- for (let i = 0; i < 3; i++) {
- console.log(fitness[i]);
- }
- }
- // This is our .ejs file:
- <body>
- <!-- Navbar -->
- <%- include('../partials/navbar') %>
- <h1 class="mt-5 text-center">Results</h1>
- <h2 class="mt-3 text-center">
- Hi <%= applicant_name %>, here are your results from the
- quesitonnaire.
- </h2>
- <div class="card-group p-5">
- <div class="card">
- <img
- src="https://randomuser.me/api/portraits/men/1.jpg"
- class="card-img-top"
- alt="..."
- />
- <div class="card-body">
- <h5 class="card-title">Best Match</h5>
- <p class="card-text">
- Compatibility %: <%= resident[0].fitness %><br />
- Name: <%= resident[0].name %> <br />
- Email: <%= resident[0].email %><br />
- Location: <br />
- </p>
- </div>
- </div>
- <div class="card">
- <img
- src="https://randomuser.me/api/portraits/women/1.jpg"
- class="card-img-top"
- alt="..."
- />
- <div class="card-body">
- <h5 class="card-title">Second Match</h5>
- <p class="card-text">
- Compatibility %: <%= resident[1].fitness %><br />
- Name: <%= resident[1].name %> <br />
- Email: <%= resident[1].email %><br />
- Location: <br />
- </p>
- </div>
- </div>
- <div class="card">
- <img
- src="https://randomuser.me/api/portraits/men/2.jpg"
- class="card-img-top"
- alt="..."
- />
- <div class="card-body">
- <h5 class="card-title">Third Match</h5>
- <p class="card-text">
- Compatibility %: <%= resident[2].fitness %><br />
- Name: <%= resident[2].name %> <br />
- Email: <%= resident[2].email %><br />
- Location: <br />
- </p>
- </div>
- </div>
- </div>
- <!-- Footer -->
- <%- include('../partials/footer') %>
- <!-- JavaScript -->
- <%- include('../partials/script') %>
- </body>
- // Photos of how it looks:
- // TypeError: https://imgur.com/a/LvKPaPm
- // Refresh after the server crashes: https://imgur.com/a/lfaR06F - This is essentially what we want, and it seems like it works. But we still get the TypeError and the server crashes.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement