I am trying to make a register system but I cannot get it to work. Whenever I try to run it in LocalHost I get the error "Cannot get" and I also need it to save the data in a JSON file. I hope you can help me. :)
Thank you in advance!
My server file:
const express = require('express');
const app = express();
const brugerCont = require("./controllers/brugerCont");
app.use(express.static("./frontend"));
app.use(express.json());
app.use("/brugere", brugerCont);
const PORT = 1700;
app.listen(PORT, () => {
console.log(`Server lytter på http://localhost:${PORT}`);
});
My index file:
const { response } = require("express");
const { json } = require("body-parser");
document.addEventListener("DOMContentLoaded", (event) => {
document.getElementById("form").addEventListener("submit", (event) => {
event.preventDefault();
const email = document.getElementById("email_input").value;
const kode = document.getElementById("kode_input").value;
const bruger = {
email: email,
kode: kode,
};
fetch("http://localhost:1700/bruger/opret", {
method: "POST",
headers: {
"Content-type": "application/json",
},
body: JSON.stringify(bruger),
})
.then((response) => response.json())
.then((response) => {
if (response) {
location.href = "/frontend/HTML/login.html";
}
// window.localStorage.setItem("bruger_information", JSON.stringify(bruger));
// window.location.replace("/frontend/HTML/hovedside");
})
.catch(() => {
window.alert("Fejlmeddelse");
});
});
});
My HTML file: [...]
<div>
<form id="form">
<br>
<div>
<input type="email" placeholder="Email" id="email_input" class="Email"/>
</div>
<br>
<div>
<input type="password" placeholder="Kode" id="kode_input" class="Kode"/>
</div>
<br>
<div>
<input type="submit" value="Opret"/>
</form>
</div>
<script src="reg.js"></script>
</body>
</html>
My db file:
var fs = require('fs');
const brugerData = "/users.json";
const Altdata = __dirname + "/../../data";
class DB {
constructor() {
this.brugere = this.openFile(brugerData);
}
saveFile(fileName, contentString) {
fs.writeFileSync(Altdata+ fileName, contentString);
}
openFile(fileName) {
const file = fs.readFileSync(Altdata + fileName);
return JSON.parse(file);
}
saveUser(bruger) {
this.brugere.push(bruger);
this.saveFile(brugerData, JSON.stringify(this.brugere));
}
findUser(bruger) {
return this.brugere.find((x) => bruger.email == x.email);
}
}
My user controller:
const express = require("express");
const router = express.Router();
const userModel = require("./../models/bruger");
const db = require("./../helpers/db");
const bruger = require("./../models/bruger");
router.post("/opret", (req, res) => {
const user = new userModel(req.body.email, req.body.kode);
db.saveUser(bruger);
res.status(200).send(true);
});
router.delete("/delete", (req, res) => {
const user = new userModel(req.body.email, req.body.kode);
db.deleteUser(bruger);
res.status(200).send(true);
});
router.post("/login", (req, res) => {
const user = new userModel(req.body.email, req.body.kode);
const found = db.findUser(bruger);
if (found) {
if (bruger.kode == found.kode) {
res.status(200).send(true);
} else {
res.status(401).send(false);
}
} else {
res.status(404).send(false);
}
});
module.exports = router;
Via Active questions tagged javascript - Stack Overflow https://ift.tt/2FdjaAW
Comments
Post a Comment