zoukankan      html  css  js  c++  java
  • [MEAN Stack] First API -- 3. Select by ID with Mongoose and Express

    Mongoose allows you to easily select resources by ID from your MongoDB. This is an important aspect to creating an API.

    Server.js

    'use strict';
    
    var expres = require('express');
    var mongoose = require('mongoose');
    mongoose.connect('mongodb://localhost/simple');
    var cors = require("cors");
    
    var personSchema = {
        firstName:String,
        lastName:String,
        email:String
    };
    
    //create a person model, and rename db as people
    var Person = mongoose.model('Person', personSchema);
    var app = expres();
    app.use(cors());
    
    app.get('/people', function(request, response){
        Person.find().select("firstName").exec(function(err, data) {
            response.json(200, data);
        })
    });
    
    app.get('/people/:id', function(request, response){
        Person.findById(request.params.id, function(err, data) {
           response.send(data);
        });
    });
    
    app.listen(3000);

    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',[])
        .controller('MainCtrl', MainCtrl)
        .service('PeopleService', PeopleService);

    index.html

    <!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="app.js"></script>
    </body>
    </html>
  • 相关阅读:
    (译)linux系统关于命令echo的15个例子
    linux之grep实例讲解
    linux grep练习
    (译)"usermod"命令使用完全指导---15个练习例程截图
    linux分区,文件系统,目录结构概述
    Linux 配置YUM
    Linux 强制安装rpm 包
    $LANG、$NLS_LANG 记录一下
    Oracle性能诊断艺术-相关脚本说明
    datafile相关(add、rename、drop)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/4154582.html
Copyright © 2011-2022 走看看