52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
const express = require("express");
|
|
const bcrypt = require("bcrypt-nodejs"); // bcrypt-nodejs is a module that we can use to hash passwords
|
|
const cors = require("cors");
|
|
const knex = require("knex"); // knex is a database library
|
|
|
|
// Import endpoint controllers
|
|
const register = require("./controllers/register");
|
|
const signin = require("./controllers/signin");
|
|
const profile = require("./controllers/profile");
|
|
const image = require("./controllers/image");
|
|
|
|
// Set up database connection
|
|
const db = knex({
|
|
client: "pg",
|
|
connection: {
|
|
connectionString: process.env.DATABASE_URL,
|
|
},
|
|
});
|
|
|
|
const app = express();
|
|
|
|
app.use(cors());
|
|
app.use(express.urlencoded({ extended: false }));
|
|
app.use(express.json());
|
|
|
|
app.get("/", (req, res) => {
|
|
res.send("Success!");
|
|
});
|
|
|
|
app.post("/signin", (req, res) => {
|
|
signin.handleSignIn(req, res, db, bcrypt);
|
|
});
|
|
|
|
app.post("/register", (req, res) => {
|
|
register.handleRegister(req, res, db, bcrypt);
|
|
});
|
|
|
|
app.get("/profile/:id", (req, res) => {
|
|
profile.handleProfileGet(req, res, db);
|
|
});
|
|
|
|
app.put("/image", (req, res) => {
|
|
image.handleImage(req, res, db);
|
|
});
|
|
|
|
app.post("/imageurl", (req, res) => {
|
|
image.handleApiCall(req, res);
|
|
});
|
|
|
|
app.listen(process.env.PORT || 3000, () => {
|
|
console.log(`app is running on port ${process.env.PORT}!`);
|
|
});
|