Giter Club home page Giter Club logo

mean-ts's Introduction

MEAN with TypeScript

CircleCI Coverage Status BCH compliance codebeat badge

A template of a MEAN stack web app written in TypeScript.

Demo on Heroku

Getting Started

Mongo DB

Run Mongo DB. Express app connects to mean-ts-dev database by default.

If you use Docker, you can run the following container:

docker run --detach --publish 27017:27017 --name mongo-ts-dev mongo

Express Web Server

Express app listens on port 3000.

npm install
npm start

Angular App

Angular app is served on port 4200 and its calls to localhost:4200/api are proxied to localhost:3000/api.

cd ng
npm install
npm start

Head to http://localhost:4200 to see the app.

Development

Express

Express app is written in TypeScript and transpiled files are placed in dist/. The entry point of the app is www.js module. It runs the transpiled JS files in dist/.

# Watch TS files in "src/", transpile and copy them to "dist/"
npm run build:watch

# Watch JS files in "dist/"
npm run nodemon

Debug Express in VS Code

If you use Visual Studio Code, there are configurations to help you with debugging the app.

  1. Open app in VS Code
  2. Press Ctrl + Shift + B (Run Default Build Task) to watch TS files in "src/" and transpile them in background
  3. Press F5 to debug TS files

Angular

Debug Angular in VS Code

If you use Visual Studio Code, there are configurations to help you with debugging the app.

  1. Open directory ng/ in VS Code
  2. Install Debugger for Chrome extension
  3. Press Ctrl + Shift + B (Run Default Build Task) to run ng serve in background
  4. Press F5 to debug

Configurations

Mongo Db connection string could be set in config files or as APP_MONGO environment variable.

If an app configuration is available both in a file and as environment variable, environment variable wins.

Deployment

The build.js script is used to build the app for production.

Script builds Express app and places files in dist/. It then builds Angular app and places the files in dist/public/. Express serves them as static files.

# build both apps. output files to dist/
node build.js

# run production build
node bin/www.js

Heroku

App is ready to be deployed on Heroku. Add the following environment variables in application settings:

  • NPM_CONFIG_PRODUCTION : false
  • APP_MONGO : mongodb://<dbuser>:<dbpassword>@abc.mlab.com:51799/foo-db

mean-ts's People

Contributors

poulad avatar

Stargazers

Nazanin Sheyni avatar Al Roben Adriane Goh avatar Joe avatar

Watchers

James Cloos avatar  avatar Nazanin Sheyni avatar  avatar

Forkers

jharrilim

mean-ts's Issues

Setup Airbrake for your Node application

Install Airbrake in 2 easy steps:

Step 1: Add the library

Add the Airbrake error notifier to your package.json then run npm install from your project's directory:

{
  "dependencies": {
    "airbrake-js": "^1.1.1"
  }
}

Or install the notifier manually

Step 2: Configure the library

This is a simple Node app app.js file that throws an error and sends it to Airbrake. To configure Airbrake in your project, just require the airbrake-js library and instantiate the client as shown:

(You can find your project ID and API key with your project's settings):

var http = require('http');
var AirbrakeClient = require('airbrake-js');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
  throw new Error('I am an uncaught exception');
}).listen(8080);

console.log('Server running on port 8080.');

var airbrake = new AirbrakeClient({
  projectId: <Your project ID>,
  projectKey: '<Your project API key>'
});

For our full Node example app code and more information, please visit our official GitHub repo.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.