[MEAN Stack] First API -- 2

The app structure:

Front-end: app.js

/**
 * Created by Answer1215 on 12/9/2014.
 */
‘use strict‘;

function MainCtrl(PeopleService) {
    var vm = this;
    vm.people = [];
    vm.selectedPerson = {};

   vm.getPeople = PeopleService.getPeople().then(function(response) {
        vm.people = response.data;
    });

    vm.selectPerson = function(person) {
        PeopleService.getSelectedPerson(person).then(function(response) {
            vm.selectedPerson = response.data;
            vm.selectedPerson.fullName = response.data.firstName + " " + response.data.lastName;
        });

    }

}

function PeopleService($http) {

    var PeopleService = {};
    PeopleService.getPeople = function() {
        return $http.get(‘http://localhost:3000/people‘);
    }

    PeopleService.getSelectedPerson = function(person) {
        return $http.get(‘http://localhost:3000/people/‘+person._id);
    }

    return PeopleService;
}

angular.module(‘app‘,[
    ‘ngResource‘
])
    .controller(‘MainCtrl‘, MainCtrl)
    .service(‘PeopleService‘, PeopleService);
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css"/>
</head>
<body ng-app="app">

<div class="row" ng-controller="MainCtrl as vm">
    <div class="col-xs-4">
        <ul>
            <li ng-repeat="person in vm.people" ng-click="vm.selectPerson(person)">{{person.firstName}}</li>
        </ul>
    </div>
    <div class="col-xs-6">
        <h2>{{vm.selectedPerson.fullName}}</h2>
        <span>{{vm.selectedPerson.email}}</span>
    </div>
</div>
    <script src="bower_components/angular/angular.min.js"></script>
    <script src="bower_components/angular-resource/angular-resource.min.js"></script>
    <script src="app.js"></script>
</body>
</html>

Backend:

server.js

‘use strict‘;

var express = require(‘express‘);
var cors = require("cors");
var app = express();
app.use(cors());
var people = require(‘./controller/people‘);

app.get(‘/people‘, people.getAll);
app.get(‘/people/:id‘, people.get);

app.listen(3000);

controller/people.js

/**
 * Created by Answer1215 on 12/26/2014.
 */
var model = require(‘../model/people‘);

exports.getAll = function(request, response){
    model.getAll(function(err, data) {
        if(err) response.json(503, {error: true});

        response.json(200, data);
    });
}

exports.get = function(request, response){
    var id = request.params.id;
    model.get(id, function(err, data) {
        if(err) response.json(503, {error: true});

        response.json(200, data);
    });
}

model/people.js

/**
 * Created by Answer1215 on 12/26/2014.
 */
var mongoose = require(‘../lib/mogoose‘);

var personSchema = {
    firstName:String,
    lastName:String,
    email:String
};

//create a person model, and rename db as people
var Person = mongoose.model(‘Person‘, personSchema);

exports.getAll = function(callback) {
    Person.find().select("firstName").exec(function(err, data) {
       // response.json(200, data);
        callback(err, data);
    });
}

exports.get = function(id, callback){
    Person.findById(id, function(err, data) {
        //response.send(data);
        callback(err, data);
    });
}

lib/mogoose.js

/**
 * Created by Answer1215 on 12/26/2014.
 */
var mongoose = require(‘mongoose‘);
mongoose.connect(‘mongodb://localhost/simple‘);

module.exports = mongoose;
时间: 2024-08-04 18:18:15

[MEAN Stack] First API -- 2的相关文章

[MEAN Stack] First API with Node.js, Express and MongoDB

Learn how to import data into your MongoDB and then use Express to serve a simple Node.js API. Import data into MongoDB: For exmaple, you have an data.json file and contains some data. 1. Start Mongod service: //in the cmd $ mongod 2. Open a new Tab,

[MEAN Stack] First API -- 7. Using Route Files to Structure Server Side API

Currently, the server.js is going way too long. In the real world application, it is likely that we are going to deal with more routers, whichi means it growing even longer. A single file which has too many lines of code whcih means code small. We ar

2016-11-15 Stack子类与Properties子类

前言:Stack表示栈操作,栈是一种先进后出的数据结构.而Stack是Vector的子类. 一.Stack子类 API文档:public class Stack <E> extends Vector <E> 但是需要注意的是,虽然Stack是Vector子类,可是它不会使用Vector类方法,它使用自己的方法: |-出栈:public E push(E item): |-出栈:public E pop(); 范例代码: package cn.mldn.demo27; import

Java 集合系列 06 Stack详细介绍(源码解析)和使用示例

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 第1部分 Stack介绍 Stack简介 Stack是栈.它的特性是:先进后出(FILO, F

【转】 Java 集合系列07之 Stack详细介绍(源码解析)和使用示例

概要 学完Vector了之后,接下来我们开始学习Stack.Stack很简单,它继承于Vector.学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它.内容包括:第1部分 Stack介绍第2部分 Stack源码解析(基于JDK1.6.0_45)第3部分 Vector示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308852.html 第1部分 Stack介绍 Stack简介 Stack是栈.它的

(转)Java 集合系列07之 Stack详细介绍(源码解析)和使用示例

概要 学完Vector了之后,接下来我们开始学习Stack.Stack很简单,它继承于Vector.学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它.内容包括:第1部分 Stack介绍第2部分 Stack源码解析(基于JDK1.6.0_45)第3部分 Vector示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308852.html 第1部分 Stack介绍 Stack简介 Stack是栈.它的

java集合之Stack

Stack很简单,它继承于Vector 第1部分 Stack介绍第2部分 Stack源码解析(基于JDK1.6.0_45)第3部分 Vector示例 转载请注明出处:http://www.cnblogs.com/skywang12345/p/3308852.html 第1部分 Stack介绍 Stack简介 Stack是栈.它的特性是:先进后出(FILO, First In Last Out). java工具包中的Stack是继承于Vector(矢量队列)的,由于Vector是通过数组实现的,这

Stack Overflow 架构

意料之中,也是意料之外,Stack Overflow仍然重度使用着微软的产品.他们认为既然微软的基础设施可以满足需求,又足够便宜,那么没有什么理由去做根本上的改变.而在需要的地方,他们同样使用了Linux.究其根本,一切都是为了性能. 另一个值得关注的地方是,Stack Overflow仍然使用着纵向扩展策略,没有使用云.他们使用了384GB的内存和2TB的SSD来支撑SQL Servers,如果使用AWS的话,花费可想而知.没有使用云的另一个原因是Stack Overflow认为云会一定程度上

Java 集合系列07之 Stack详细介绍(源码解析)和使用示例

http://www.cnblogs.com/skywang12345/p/3308852.html 概要 学完Vector了之后,接下来我们开始学习Stack.Stack很简单,它继承于Vector.学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码:最后再通过实例来学会使用它.内容包括:第1部分 Stack介绍第2部分 Stack源码解析(基于JDK1.6.0_45)第3部分 Vector示例 转载请注明出处:http://www.cnblogs.com/skywang1