[MEAN Stack] 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>
时间: 2024-12-12 09:22:47

[MEAN Stack] Select by ID with Mongoose and Express的相关文章

javascript获取select 的id与值

<script type="text/javascript"> function showOptionId () { var type = document.getElementById ("select"); //获取select var typeId = type.options [type.selectedIndex].id; //获取option的ID var typeValue = type.options [type.selectedInde

关于select的id以及value传给后台的问题

下面解释下后端为什么让传id的时候我们要怎末办? 定义一个空对象将他的值给select的值,option遍历的时候:value="item",这里的item是一个对象,也就是如果你要提交的话,提交的当然是空对象,除非你手动改变select的值, 如果改变select的value值,也就是改变了obj这个对象,此时我们就可以拿到他的obj的id,以及name,当然一般后端只会让你传id的,也有一些脑残,会让传name, 原文地址:https://www.cnblogs.com/MDGE/

使用原生JavaScript实现对select增加option标签并附加value属性

好久没有写原生的东西了,今天写了一个小项目里面包含着option选项,所以我决定使用原生JavaScript动态生成, 本着互联网分享精神,我将本篇文章分享给大家. html代码(就是一个select) <select name="" id="reg-select"></select> json数据 var json = [ { "cc": "86", "code": "C

删除除了 id 号不同,其他都相同的学生冗余信息

删除除了 id 号不同,其他都相同的学生冗余信息2.学生表 如下:id 号 学号 姓名 课程编号 课程名称 分数1 2005001 张三 0001 数学 692 2005002 李四 0001 数学 893 2005001 张三 0001 数学 69 create table student2(id int auto_increment primary key,code varchar(20),name varchar(20));insert into student2 values(null,

HTML中的&lt;select&gt;标签如何设置默认选中的选项

方法有两种. 第一种通过<select>的属性来设置选中项,此方法可以在动态语言如php在后台根据需要控制输出结果. 1 2 3 4 5 < select  id =  "sel" > < option  value = "1" >1</ option > < option  value = "2"  selected = "selected" >2</ opt

php 获取最后插入数据的id

向mysql 插入数据时 很多时候 我们想知 道刚刚插入数据的id 这对我们很有用 下面我说出常用的三种 方法并一一分析其利与弊 一 用以下语句: mysql_query("select max(id) from t1",$link); 使用这种方法时 我们得到得是 id最大的值 的确时最后一个 但当多链接线程时 这个最大的id并不一定是 我们插入的所以这个不利用域线程 二 用以下函数: msyql_insert_id(); 当系统执行完INSERT后,再执行SELECT时,可能已经被

mysql 查询select语句汇总

数据准备: 创建表: create table students( id int unsigned primary key auto_increment not null, name varchar(20) default '', age tinyint unsigned default 0, height decimal(5,2), gender enum('男','女','人妖','保密'), cls_id int unsigned default 0, isdelete bit defau

MYSQL获取自增ID的四种方法

厚积!! 1. select max(id) from tablename 2.SELECT LAST_INSERT_ID() 函数 LAST_INSERT_ID 是与table无关的,如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变. 在多用户交替插入数据的情况下max(id)显然不能用.这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基 于 Connection的,只要每个线程都使用独立的 Connection对象,LAST_INSER

用于 SELECT 和 WHERE 子句的函数

1 一个 SQL 语句中的 select_expression 或 where_definition 可由任何使用了下面所描述函数的表达式组成. 2 3 包含 NULL 的表达式总是得出一个 NULL 值结果,除非表达式中的操作和函数在文档中有另外的说明. 4 5 注意:在一个函数名和跟随它的括号之间必须不存在空格.这有助于 MySQL 语法分析程序区分函数调用和对恰巧与函数同名表或列的引用.然而,参数左右两边的空格却是允许的. 6 7 你可以强制 MySQL 接受函数名后存在空格的形式,这需要