npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

expressly

v4.0.1

Published

Mongo-Express-Node starter kit

Downloads

74

Readme

expressly

Expressly: mongo-express-node stack starter blueprint written using JavaScript ES7 in a cross-platform development environments (os x, windows, or linux)

Setting up an Mongo Express Node backend is time consuming with lots of moving parts that have to be setup correctly. This blueprint is meant to provide a stable basis for building that backend. It is written with a focus on Javascript ES7 ... so, you'll get to use features like object destructuring and async/await. And includes starter points for user authentication using passport with email/password/JWT and includes bcrypt

File Structure

src - source for the app

- index.js - entry point

- config

	-- constants.js - configure development, production, test environments

	-- database.js - configure database environment/connections

	-- middleware.js - configure middleware based on environment

- modules - manages routes and api

	-- index.js - provides a single exportable point for the routes/api

	-- <purpose> (bundles routes/apis to their purpose ... e.g User folder manages user routes/apis)

		-- <purpose>.controllers.js - control the external api calls (e.g. MongoDb queries)

		-- <purpose>.model.js - Mongo database schema model

		-- <purpose>.routes.js - routes

		-- <purpose>.validation.js - validation of input to the database/api (e.g. user password strength)

- services

  -- auth.services.js - setups passport strategies

Packages (explanations for those that might not be obvious)

** compression: attempts to compress response bodies for all request that traverse through the middleware

** cross-env: use of environment variable cross platform (mainly so Windows OS doesn't choke)

** express-validation: validates the body, params, query, headers and cookies of a request and returns a response with errors

** helmet: secure Express app by setting a number of HTTP headers

** joi: object schema description language and validator for Javascript objects

** morgan:  HTTP request logger for Node.js

** rimraf: The UNIX command rm -rf for node ... we use to clean distribution folder

authentication

** bcrypt-nodejs: using this version of bcrypt because of installation issues with bcrypt for windows development platforms
** passport
** passport-local
** passport-jwt

express

** express

babel - a transpilier that transforms current (ES6/ES7) Javascript

** babel-core

** babel-loader

** babel-plugin-transform-object-rest-spread: allows Babel to transform rest properties for object destructuring assignment and spread properties for object literals

** babel-preset: automatically determine the Babel plugins and polyfills needed based on the supported environments

webpack - module bundler

** webpack-node-externals: Easily exclude node modules in Webpack