server.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import compression from 'compression';
  2. import * as sapper from '@sapper/server';
  3. import { createConnection, getConnectionOptions } from "typeorm";
  4. import express from "express";
  5. import session from "cookie-session";
  6. import dotenv from "dotenv";
  7. import { DB_ENTITIES } from "@shared/db/entities";
  8. if(process.env.NODE_ENV == "development") {
  9. console.log(process.cwd());
  10. dotenv.config({
  11. path: "../.env"
  12. });
  13. dotenv.config({
  14. path: "../db.env"
  15. });
  16. process.env.TYPEORM_HOST = "localhost";
  17. process.env.TYPEORM_USERNAME = process.env.DB_USERNAME;
  18. process.env.TYPEORM_PASSWORD = process.env.DB_PASSWORD;
  19. process.env.TYPEORM_DATABASE = process.env.DB_NAME;
  20. }
  21. const PORT = +(process.env.PORT as string);
  22. async function main() {
  23. await createConnection({
  24. ...await getConnectionOptions(),
  25. entities: DB_ENTITIES
  26. });
  27. express()
  28. .use(
  29. session({
  30. maxAge: 604800,
  31. secret: process.env.ADMIN_COOKIE_KEY,
  32. name: "session"
  33. }),
  34. compression({ threshold: 0 }),
  35. express.static("static"),
  36. sapper.middleware({
  37. session: (req, res) => ({
  38. user: req.session && req.session.user
  39. })
  40. })
  41. )
  42. .listen(PORT, err => {
  43. if (err) console.log('error', err);
  44. });
  45. }
  46. main();