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主主(读写分离)集群建立+代码包+持续上线+备份)
一.前言 最近公司做了一套新产品,需要发布到不确定的硬件环境中(不同使用单位规模,使用人数,服务器提供的资源不同)若每次进行人工部署耗时费力,周期过长. 二.分析 具体的部署流程如下: 由上图流程进行 ...
随机推荐
- python全栈开发 什么是python python命名及循环
python全栈 一. python介绍: 1. python起源 2. 主要应用领域; web,人工智能,云计算,系统运维. 1.1 python是一门什么语言? python是一 ...
- python+selenium的环境配置
以前写过关于python和selenium加myeclipse的环境配置,但是myeclipse启动时过于费时,虽然myeclipse有很好的提示功能,但是作为初学者,我还是直接用python的idl ...
- Python Flask学习
开了一个新坑..一直以来对web的前端后端了解比较模糊,所以打算学一个后端框架,写个小博客什么的增长一下姿势水平. 初学嘛,选个相对轻量级一点的,就决定学习flask啦.
- opsmanage 自动化运维管理平台
关闭防火墙.selinux 更换阿里云 yum源 依赖环境 yum install -y epel-releaseyum install vim net-tools nmon htop rsync t ...
- VS2013 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array<int>::operator [](int)”只是在返回类型上不同
1,VS2013 错误 1 error C2556: “const int &Array<int>::operator [](int)”: 重载函数与“int &Array ...
- 与服务器同步工程(expect脚本)
先看下我实际用的例子: #!/usr/bin/expect spawn rsync -vazu ssh-src/src wayne@192.168.5.2:~/projects/ expect &qu ...
- 9. Palindrome Number (考虑负数的情况)
Determine whether an integer is a palindrome. Do this without extra space. long int reverse(int x) { ...
- Node使用 Express框架,实现文件上传
一 安装依赖包 npm install multer --save 二 客户端上传文件 <!DOCTYPE html> <html> <head> <meta ...
- @RequestMapping使用须知
----------------------siwuxie095 @RequestMapping 使用须知 使用 @RequestMapping 注解映射请求路径 即 你可以使用 @RequestMa ...
- Springboot学习03-SpringMVC自动配置
Springboot学习03-SpringMVC自动配置 前言 在SpringBoot官网对于SpringMVCde 自动配置介绍 1-原文介绍如下: Spring MVC Auto-configur ...