{"id":16227297,"url":"https://github.com/johnpapa/express-to-functions","last_synced_at":"2025-09-04T21:33:13.208Z","repository":{"id":38698606,"uuid":"208098431","full_name":"johnpapa/express-to-functions","owner":"johnpapa","description":"TypeScript Node/Express 👉TypeScript Serverless ➕ Angular","archived":false,"fork":false,"pushed_at":"2023-01-06T02:10:22.000Z","size":2434,"stargazers_count":53,"open_issues_count":24,"forks_count":15,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-12-28T08:02:41.742Z","etag":null,"topics":["azure","azure-functions","express","nodejs","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnpapa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-12T16:43:07.000Z","updated_at":"2024-09-16T14:28:52.000Z","dependencies_parsed_at":"2023-02-05T02:31:54.323Z","dependency_job_id":null,"html_url":"https://github.com/johnpapa/express-to-functions","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnpapa%2Fexpress-to-functions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnpapa%2Fexpress-to-functions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnpapa%2Fexpress-to-functions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnpapa%2Fexpress-to-functions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnpapa","download_url":"https://codeload.github.com/johnpapa/express-to-functions/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231998733,"owners_count":18458172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","azure-functions","express","nodejs","typescript"],"created_at":"2024-10-10T12:52:21.493Z","updated_at":"2024-12-31T14:40:30.989Z","avatar_url":"https://github.com/johnpapa.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# Heroes Angular Serverless\n\nTypeScript Node/Express 👉TypeScript Serverless ➕ Angular\n\nThis project was created to help represent a fundamental app written with Node Express APIs and TypeScript that can be shifted to Serverless Functions with TypeScript.\n\nThe client app is Angular, however it could just as easily be Vue or React. The heroes and villains theme is used throughout the app.\n\nby [John Papa](http://twitter.com/john_papa)\n\nComparative client apps written with Vue and React can be found at at [github.com/johnpapa/heroes-vue](https://github.com/johnpapa/heroes-vue) and [github.com/johnpapa/heroes-react](https://github.com/johnpapa/heroes-react)\n\n## Why\n\nI love Node and Express for creating APIs! These require a server and paying for that server in the cloud. Shifting to serverless alleviates the cost, the server upkeep, helps scale up and down easily, and reduces the surface area of the middleware required for a robust Express app. Is it perfect? No, of course not! But this is a solid option if these factors affect you.\n\n## Prerequisites\n\nMake a copy of the `env.example` file named `.env`, in the root of the project. It should contain the following code.\n\n`.env`\n\n```\nNODE_ENV=development\nPORT=7070\nWWW=./\n```\n\n## Getting Started\n\n1. Clone this repository\n\n   ```bash\n   git clone https://github.com/johnpapa/express-to-functions.git\n   cd express-to-functions\n   ```\n\n1. Install the npm packages\n\n   ```bash\n   npm install\n   ```\n\n## Build and Serve Dev\n\n1. Build the Node Express and the Angular code\n\n   ```bash\n   npm run full-stack:build\n   ```\n\n1. Run the app\n\n   ```bash\n   npm run full-stack:dev\n   ```\n\n## Build and Serve Production\n\n1. Build the Node Express and the Angular code\n\n   ```bash\n   npm run full-stack:build\n   ```\n\n1. Run the app\n\n   ```bash\n   npm run node:start\n   ```\n\n## Debug Node Express and Angular\n\n1. Open `proxy.conf.json` and change the port to `7070`\n\n1. Open the VS Code Command Palette `F1`\n\n1. Type `View: Show Debug` and press `ENTER`\n\n1. Select `Debug Express and Angular`\n\n1. Press `F5`\n\n1. Open the browser to \u003chttp://localhost:7070\u003e\n\nYou may now set break points in the Express and Angular code.\n\n## Debug Functions and Angular\n\n1. Open `proxy.conf.json` and change the port to `7071`\n\n1. Open the VS Code Command Palette `F1`\n\n1. Type `View: Show Debug` and press `ENTER`\n\n1. Select `Debug Functions and Angular`\n\n1. Press `F5`\n\n1. Open the browser to \u003chttp://localhost:7071\u003e\n\nYou may now set break points in the Functions and Angular code.\n\n## Problems or Suggestions\n\n[Open an issue here](/issues)\n\n## Resources\n\n- [Azure Free Trial](https://azure.microsoft.com/free/?WT.mc_id=javascript-0000-jopapa)\n- [VS Code](https://code.visualstudio.com/?WT.mc_id=javascript-0000-jopapa)\n- [VS Code Extension for Node on Azure](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-node-azure-pack\u0026WT.mc_id=javascript-0000-jopapa)\n- [VS Code Extension Marketplace](https://marketplace.visualstudio.com/vscode?WT.mc_id=javascript-0000-jopapa)\n- [VS Code - macOS keys](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf?WT.mc_id=javascript-0000-jopapa)\n- [VS Code - Windows keys](https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf?WT.mc_id=javascript-0000-jopapa)\n- Azure Functions [local.settings.json](https://docs.microsoft.com/azure/azure-functions/functions-run-local?WT.mc_id=javascript-0000-jopapa#local-settings-file?WT.mc_id=expresstofunctions-github-jopapa) file\n- Tutorial to [Deploy to Azure Using Azure Functions](https://code.visualstudio.com/tutorials/functions-extension/getting-started?WT.mc_id=javascript-0000-jopapa)\n\n### Debugging Resources\n\n- [Debugging Angular in VS Code](https://code.visualstudio.com/docs/nodejs/angular-tutorial?WT.mc_id=javascript-0000-jopapa)\n- [Debugging React in VS Code](https://code.visualstudio.com/docs/nodejs/reactjs-tutorial?WT.mc_id=javascript-0000-jopapa)\n- [Debugging Vue in VS Code](https://code.visualstudio.com/docs/nodejs/vuejs-tutorial?WT.mc_id=javascript-0000-jopapa)\n- [Tasks in VS Code](https://code.visualstudio.com/Docs/editor/tasks?WT.mc_id=javascript-0000-jopapa)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnpapa%2Fexpress-to-functions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnpapa%2Fexpress-to-functions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnpapa%2Fexpress-to-functions/lists"}