Nodejs+Mongo+WebAPI
Nodejs+Mongo+WebAPI集成
1.【 目录】:
|- models/bear.js
|- node_modules/
|- express
|- mongoose
|- body-parser
|- Server.js
|- package.json
2. 【代码】:
//Server.js
// server.js // base setup
// =========================================================== // call the package we need
var express = require('express'); // call expreess
var app = express(); // define our app using express
var bodyParser = require('body-parser'); // mongoose setup
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/myDatabase') // connect to database 'myDatabase' // models setup
var Bear = require('./models/bear') // configure app to use bodyParser()
// this will let us get the data from a POST
app.use( bodyParser.urlencoded({ extended: true}));
app.use( bodyParser.json()); var port = process.env.PORT || ; // routes for our API
// ==============================================================
var router = express.Router(); // 1. middle ware
router.use( function(req, res, next){
// do logging
console.log('Something is happening.');
next();
}); // 2. test route to make sure everything is work
router.get('/', function(req, res){
res.json( { message: 'Horray! Welcome to our api!'});
}); // 3. routes end in: /bears
router.route('/bears') // 3-1. create a bear (accessed at POST http://localhost:3000/api/bears)
.post( function(req, res){
var newBear = new Bear(); // create a new instance of the Bear model
newBear.name = req.body.name; // set the bears name ( comes from the request ) // save the bear and check for errors
newBear.save ( function(err){
if(err)
res.send(err);
res.json({ message: 'Bear created!'});
});
}) // 3-2. get all the bears (accessed at GET http://localhost:3000/api/bears)
.get( function(req, res){
Bear.find( function(err, bears){
if(err)
res.send(err);
res.json(bears);
})
} ); // 4. routes end in: /bears/:bears_id
router.route('/bears/:bear_id') //4-1. get the bear with this id (accessed at GET http://localhost:3000/api/bears/:bear_id)
.get(function(req, res){
Bear.findById(req.params.bear_id, function(err, bear){
if(err)
res.send(err);
res.json(bear);
});
}) // 4-2. update the bear with this id (accessed at PUT http://localhost:3000/api/bears/:bear_id)
.put(function(req, res){ // use bear model to find the bear we want
Bear.findById(req.params.bear_id, function(err, bear){
if(err)
res.send(err);
bear.name = req.body.name; // update the bears info // save the bear
bear.save(function(err){
if(err)
res.send(err);
res.json({message: 'Bear updated!'});
});
});
}) // 4-3. delete the bear with this id (accessed at DELETE http://localhost:3000/api/bears/:bear_id)
.delete(function(req, res){
Bear.remove(
{
_id: req.params.bear_id
}, function(err, bear){
if(err)
res.send(err);
res.json({ message: 'Successfully deleted!'});
}
)
}); // more routes for our API will happen here // REGISTER OUR ROUTES // all of our routes will be prefixed with /api
app.use('/api', router); // start the server
// ==============================================
app.listen(port);
console.log('Magic happens on port : ' + port);
// models/bear.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var BearSchema = new Schema( {
name: String
});
module.exports = mongoose.model('Bear', BearSchema);
Nodejs+Mongo+WebAPI的更多相关文章
- nodejs+mongo 实现搜附近的人
参考网址:http://blog.csdn.net/huangrunqing/article/details/9112227 用mongo作为存储,来实现搜索附近的人具有先天的优势, MongoDB原 ...
- 【开源】NodeJS仿WebApi路由
用过WebApi或Asp.net MVC的都知道微软的路由设计得非常好,十分方便,也十分灵活.虽然个人看来是有的太灵活了,team内的不同开发很容易使用不同的路由方式而显得有点混乱. 不过这不是重点, ...
- NodeJS仿WebApi路由
用过WebApi或Asp.net MVC的都知道微软的路由设计得非常好,十分方便,也十分灵活.虽然个人看来是有的太灵活了,team内的不同开发很容易使用不同的路由方式而显得有点混乱. 不过这不是重点, ...
- nodejs&mongo&angularjs
http://www.ibm.com/developerworks/cn/web/wa-nodejs-polling-app/
- 十个最适合 Web 和 APP 开发的 NodeJS 框架
在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之一.全球各地的开发者张开双臂拥抱 NodeJS. 对于新手来 ...
- mongo&node
///// node install $ sudo apt-get install python-software-properties $ curl -sL https://deb.nodesou ...
- 10 个最适合 Web 和 APP 开发的 NodeJS 框架
在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之一.全球各地的开发者张开双臂拥抱 NodeJS. 对于新手来 ...
- node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)
第七章 建议学习时间4小时 课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...
- 一个适合变化的产品部署集成包(nginx+jdk+tomcat+nodejs+mysql+redis+mongo+MYSQL主主(读写分离)集群建立+代码包+持续上线+备份)
一.前言 最近公司做了一套新产品,需要发布到不确定的硬件环境中(不同使用单位规模,使用人数,服务器提供的资源不同)若每次进行人工部署耗时费力,周期过长. 二.分析 具体的部署流程如下: 由上图流程进行 ...
随机推荐
- Spring启动异常: cvc-elt.1: Cannot find the declaration of element 'beans'(转)
Spring启动异常: cvc-elt.1: Cannot find the declaration of element 'beans' 2008-09-07 22:41 今天把在线聊天室代码改了下 ...
- docker 安装与使用
1.yum安装docker yum -y install docker 2.启动docker service docker start 3.检验运行状态 systemctl status docker ...
- latex安装及基本使用
安装 需要两个文件,texlive2018.iso和texstudio-2.12.14-win-qt5.exe. 首先安装texlive2018.iso,管理员权限运行其中的install-tl-ad ...
- FileReader读取文件详解
FileReader是一种异步文件读取机制,结合input:file可以很方便的读取本地文件. input:file 在介绍FileReader之前,先简单介绍input的file类型. <in ...
- [剑指Offer]22-链表中倒数第k个结点
题目链接 https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&tqId=11167&t ...
- Kylin 与 Spark SQL相比,有哪些差异和优势
SparkSQL本质上是基于DAG模型的MPP.而Kylin核心是Cube(多维立方体).关于MPP和Cube预处理的差异,重复如下: > MPP [1] 的基本思路是增加机器来并行计算,从而提 ...
- Java 微服务框架选型 Dubbo 和 Spring Cloud
微服务(Microservices)是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地完成该任 ...
- Inno Setup自定义安装界面脚本
; 脚本由 Inno Setup 脚本向导 生成! ; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档! #define MyAppName "RemoteCard&quo ...
- ubuntu远程桌面、VNC(转载)
VNC 远程桌面 配置/使用 for xfce 本贴主要目的为说明如何在windows系统下远程控制xfce桌面 Ubuntu 的默认GNOME桌面可以在系统设置中直接打开远程桌面,然后用Window ...
- java 知识汇总
一.springboot cloud 1.maven 配置 parent:org.springframework.boot:sping-boot-starter-parent dependencies ...