https://github.com/devzstudio/mern-snippets
π»πMongoDB, ExpressJS, ReactJS, NodeJs, Redux, Axios Snippets for VSCode
https://github.com/devzstudio/mern-snippets
axios expressjs javascript mongodb mongoose nodejs reactjs vscode-extension vscode-snippet vscode-snippets
Last synced: about 2 months ago
JSON representation
π»πMongoDB, ExpressJS, ReactJS, NodeJs, Redux, Axios Snippets for VSCode
- Host: GitHub
- URL: https://github.com/devzstudio/mern-snippets
- Owner: Devzstudio
- Created: 2019-04-12T16:00:15.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-07-05T07:08:00.000Z (almost 4 years ago)
- Last Synced: 2025-04-11T21:07:58.994Z (about 2 months ago)
- Topics: axios, expressjs, javascript, mongodb, mongoose, nodejs, reactjs, vscode-extension, vscode-snippet, vscode-snippets
- Homepage: https://marketplace.visualstudio.com/items?itemName=devzstudio.mern-snippets
- Size: 31.3 KB
- Stars: 10
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# MERN-Snippets π€
MongoDB, ExpressJS, ReactJS & NodeJS Snippets to Boost the Productivity π
MERN Snippets include Redux, Axios Snippets π## Usage
1. Install the extension
2. You will get suggestion when you type the commands
3. Hit Tab or Enter## Command
## MongoDB
Shortcut
Description
Outputreq_mongoose
Require Mongooseconst mongoose = require("mongoose");
keys_conf
Mongo key Configmodule.exports = {
mongoURI:
""
};db.keys
Require Mongo Keysconst db = require("./config/keys").mongoURI;
db_connect
Mongoose Connectmongoose
.connect(db)
.then(() => console.log("π» Mondodb Connected"))
.catch(err => console.error(err));db.find
Mongoose findModel.find()
.then(item => res.json(item));db.save
Mongoose Saveconst newItem = new Model({
item: req.body.data
});newItem.save().then(item => {
res.json(item);
});db.delete
Mongoose delete itemModel.findById(req.params.id)
.then(item => item.remove().then(() => res.json({ success: true })))
.catch(err => {
res.status(400).json({ success: false });
});
db.findone
Mongoose findOneUser.findOne({ email })
.then(user =>{
})
mongoose_schema
Define schemaconst Schema = mongoose.Schema;
scheme_export
Export mongo modelmodule.exports = Item = mongoose.model("item", itemSchema);
scheme
Mongo Schema Model Boilerplateconst mongoose = require("mongoose");
const Schema = mongoose.Schema;const itemSchema = new Schema({
name: {
type: String,
required: true
}
});module.exports = Item = mongoose.model("item", itemSchema);
schema_date
Date Type Schemadate: {
type: Date,
default: Date.now
}schema_string
String Type Schemaemail: {
type: String,
required: true
},
## ExpressJS
Shortcut
Description
Outputreq_express
Require Expressconst express = require("express");
req_bodyparser
Require BodyParserconst bodyParser = require("body-parser");
use_bodyparser
Use BodyParserapp.use(bodyParser.json());
use_cors
Use CORSapp.use(cors());
app.listen
Express app.listen server and PORTconst port = process.env.PORT || 5000;
app.listen(port, () => `Server running on port ${port} π₯`);
app.get
Express app.getapp.get("/", (req, res) => {
});app.post
Express app.postapp.post("/", (req, res) => {
});exp_router
Express Router Includeconst express = require("express");
const router = express.Router();route_details
Public Route Comment/*
@route GET api/items
@desc Get all items
@access public
*/route_details_private
Private Route Comment/*
@route Private api/account
@desc Get account info
@access private
*/mod_exp
Module Exportmodule.exports = Router;
router.get
Get Routerouter.get("/", (req, res) => {
});router.post
POST Routerouter.post("/", (req, res) => {
});router.delete
Delete Routerouter.delete("/", (req, res) => {
});res.err
400 Response
return res.status(400).json({ message: 'Error' });res.success
200 Response
return res.json({ message: 'Success' });req.des
Destructure Request
const {name} = req.body## Nodejs
Shortcut
Description
Outputserver
Server.js Boilerplateconst express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");const app = express();
app.use(bodyParser.json());
const db = require("./config/keys").mongoURI;
mongoose
.connect(db)
.then(() => console.log("π» Mondodb Connected"))
.catch(err => console.error(err));app.get("/", (req, res) => {
res.send("Server working π₯");
});const port = process.env.PORT || 5000;
app.listen(port, () => `Server running on port port π₯`);
req_path
Require Path
const path = require("path");req_http
Require Http
const http = require("http");req_fs
Require File Server
const fs = require("fs");req_url
Require URL
const url = require("url");## ReactJS
Shortcut
Description
Outputimp_react
Import React
import React, { Component } from "react";imp_store
Import Store
import store from "./store";imp_prop
Import Prop Types
import PropTypes from "prop-types";imp_csstrans
Import CSSTransition & Transition Groupimport { CSSTransition, TransitionGroup } from "react-transition-group";
imp_provider
Import Provider from React Reduximport { Provider } from "react-redux";
rcc
React Class Componentimport React, { Component } from "react";
class ExampleClass extends Component {
render() {
return (
Example
);
}
}export default ExampleClass;
## Redux
Shortcut
Description
Outputimp_connect
Import Connectimport { connect } from "react-redux";
reducer
Sample reducerexport default function(state = initialState, action) {
switch (action.type) {
case EXAMPLE:
return {
...state,
action.payload
};
default:
return state;
}
}store
Store Boilerplateimport { createStore, applyMiddleware, compose } from "redux";
import thunk from "redux-thunk";
import rootReducer from "./reducers";const initialState = {};
const middleware = [thunk];
const store = createStore(
rootReducer,
initialState,
compose(
applyMiddleware(...middleware),
window.**REDUX_DEVTOOLS_EXTENSION** && window.**REDUX_DEVTOOLS_EXTENSION**()
)
);export default store;
actions
New redux actionexport const getItems = () => {
return {
type: GET_ITEMS
};
};actions_get
Create action with axios getexport const getItems = () => dispatch => {
dispatch(setItemsLoading());
axios.get("/api/items").then(res =>
dispatch({
type: GET_ITEMS,
payload: res.data
})
);
};actions_post
Create action with axios postexport const getItems = () => dispatch => {
dispatch(setItemsLoading());
axios.post("/api/add/items").then(res =>
dispatch({
type: ADD_ITEM,
payload: res.data
})
);
};actions_delete
Create action with axios deleteexport const getItems = () => dispatch => {
dispatch(setItemsLoading());
axios.delete("/api/items/delete").then(res =>
dispatch({
type: DELETE_ITEM,
payload: res.data
})
);
};itemloading
Loading actionexport const setItemsLoading = () => {
return {
type: ITEMS_LOADING
};
};payload
Short for action.payloadaction.payload
exp_conn
Export and wrap connect + mapStateToPropsconst mapStateToProps = state => ({
items: state.item
});export default connect(
mapStateToProps,
{ getItems }
)(ItemComponent);
## Axios
Shortcut
Description
Outputimp_axios
Import Axiosimport axios from "axios";
axios.get
Axios Get Requestaxios
.get("/api")
.then(res => res.data)
.catch(err => console.error(err));axios.post
Axios Post Requestaxios
.post("/api")
.then(res => res.data)
.catch(err => console.error(err));axios.delete
Axios Delete Requestaxios
.delete("/api")
.then(res => res.data)
.catch(err => console.error(err));## GraphQL
Shortcut
Description
Outputreq_graphqlhttp
Require graphqlHTTP Http
const graphqlHTTP = require('express-graphql');imp_apolloclient
Import ApolloClient
import ApolloClient from 'apollo-boost';imp_apolloprovider
Import ApolloProvider
import { ApolloProvider } from 'react-apollo';## MISC
Shortcut
Description
Outputimp
import {val} from 'val'
import 'Item' from './Item'req_cors
Require CORS
const cors = require('cors');req_bcryptjs
Require bcryptjs
const bcrypt = require('bcryptjs')req_jwt
Require Json Web Tokens
const jwt = require('jsonwebtoken')req_config
Require config
const config = require("config");fun
ES6 Arrow functionclickHandler = (e) => {
};cl
Console.logconsole.log(`data`);
cer
Console.errorconsole.error(`data`);
exd
export defaultexport default Item;
bcrypt.salt
Generate saltbcrypt.genSalt(10, (err, salt) => {
bcrypt.hash(newUser.password, salt, (err, hash) => {
if (err) throw err;
newUser.password = hash;
newUser.save().then(user => res.json(user));
});
});## Changelog
### 1.2.0
- Added more snippets β‘οΈ
- Updated Docs π### 1.0.0
Initial release of MERN snippets
**Enjoy!** ππ