[MEAN Stack] Go thought -- code
npm install mongoose --save-dev npm install express --save-dev bower install angular npm install cors --save-dev npm install body-parser --save-dev
index.html
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="./bower_components/angular/angular.min.js"></script> <script src="app.js"></script><!-- using Alt + Enter to create a new file--> </head> <body ng-app="jetbrains" ng-controller="AppCtrl as app"> <ul > <li ng-repeat="product in app.products"> {{product.name}} </li> </ul> <input type="text" ng-model="app.newProduct" /> <button ng-click="app.saveProduct(app.newProduct)">Save</button> </body> </html>
app.js
var jetbrains = angular.module("jetbrains", []); jetbrains.controller('AppCtrl', function($scope, $http){ var app = this; var url = 'http://localhost:3000'; //Ctrl + Alt +M function loadProducts() { $http.get(url).success(function (products) { app.products = products; }); } app.saveProduct = function (new_product) { $http.post(url+"/add", {name:new_product}).success(function () { loadProducts(); }) } loadProducts(); })
server.js
var express = require('express'); var app = express(); var mongoose = require("mongoose"); var cors = require("cors"); var bodyParser = require('body-parser'); app.use(cors()); app.use(bodyParser.json()); mongoose.connect('mongodb://localhost/jetbrains'); var Product = mongoose.model('Product', {name: String}); /* var product = new Product({name: 'WebStorm'}); product.save(function(err){ if(err){ console.log('failed'); }else{ console.log('saved'); } })*/ app.get('/', function(req, res){ Product.find(function(err, products){ //res.send(products[0].name); res.send(products); }); }); app.post("/add", function (req,res) { var name = req.body.name; var product = new Product({name: name}); product.save(function (err) { res.send(); }) }) app.listen(3000);