[MEAN Stack] First API -- 4. Organize app structure
2024-10-19 00:25:45
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;
最新文章
- eclipse svn提交报错
- guava学习--ratelimiter
- 在Nginx 下运行 Laravel5.1 的配置
- Java Portlet 规范概述
- python之加密
- C语言与汇编“硬在哪里”——什么是面向硬件?
- TL-WR703Nv1.7刷写openwrt固件
- 51 nod 1055 最长等差数列(dp)
- 关于 DotNetCore 的自定义权限管理
- DevExpress VCL Controls 2019发展路线图(No.2)
- 当使用cokie进行数据交互时候,cookie只需存储该对象的id即可不需要存放其他数据;只需在写个接口根据cookie里面的对象id来创建对象
- JDBC-HikariCP
- Spark源码剖析 - SparkContext的初始化(二)_创建执行环境SparkEnv
- java微信小程序调用支付接口
- 关于JSONObject和JSONArray所需要的jar
- gerp , sed , awk
- sql server2008本地连接选择windows身份验证无法登陆的解决办法
- Mac安装的PyCharm找不到顶部菜单栏 PyCharm找不到setting PyCharm不能个性化设置和直接导库
- UIResponder NSSet UITouch UIEvent
- null id in com.rocky.** entry 错误处理
热门文章
- HDU 4630-No Pain No Game(线段树+离线处理)
- 【LeetCode 221】Maximal Square
- 《Python核心编程》 第七章 映射和集合类型 - 习题
- 为cocos2d-x项目增加Lua支持
- 【原】Mongodb相关资料
- 关于javascript模式一书中var white = new Array(256).join(&ldquo; &rdquo;)
- Write a program to convert decimal to 32-bit unsigned binary.
- [.NET源码学习]实例化Font,遭遇字体不存在的情况。
- 在阿里云linux下使用SVN访问VisualSVN出错:SSL handshake failed: SSL error: Key usage violation in certificate has been detected
- Socket.io:有点意思