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的更多相关文章

  1. nodejs+mongo 实现搜附近的人

    参考网址:http://blog.csdn.net/huangrunqing/article/details/9112227 用mongo作为存储,来实现搜索附近的人具有先天的优势, MongoDB原 ...

  2. 【开源】NodeJS仿WebApi路由

    用过WebApi或Asp.net MVC的都知道微软的路由设计得非常好,十分方便,也十分灵活.虽然个人看来是有的太灵活了,team内的不同开发很容易使用不同的路由方式而显得有点混乱. 不过这不是重点, ...

  3. NodeJS仿WebApi路由

    用过WebApi或Asp.net MVC的都知道微软的路由设计得非常好,十分方便,也十分灵活.虽然个人看来是有的太灵活了,team内的不同开发很容易使用不同的路由方式而显得有点混乱. 不过这不是重点, ...

  4. nodejs&mongo&angularjs

    http://www.ibm.com/developerworks/cn/web/wa-nodejs-polling-app/

  5. 十个最适合 Web 和 APP 开发的 NodeJS 框架

    在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之一.全球各地的开发者张开双臂拥抱 NodeJS. 对于新手来 ...

  6. mongo&node

    /////  node install $ sudo apt-get install python-software-properties $ curl -sL https://deb.nodesou ...

  7. 10 个最适合 Web 和 APP 开发的 NodeJS 框架

    在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之一.全球各地的开发者张开双臂拥抱 NodeJS. 对于新手来 ...

  8. node.js零基础详细教程(7.5):mongo可视化工具webstorm插件、nodejs自动重启模块Node Supervisor(修改nodejs后不用再手动命令行启动服务了)

    第七章 建议学习时间4小时  课程共10章 学习方式:详细阅读,并手动实现相关代码 学习目标:此教程将教会大家 安装Node.搭建服务器.express.mysql.mongodb.编写后台业务逻辑. ...

  9. 一个适合变化的产品部署集成包(nginx+jdk+tomcat+nodejs+mysql+redis+mongo+MYSQL主主(读写分离)集群建立+代码包+持续上线+备份)

    一.前言 最近公司做了一套新产品,需要发布到不确定的硬件环境中(不同使用单位规模,使用人数,服务器提供的资源不同)若每次进行人工部署耗时费力,周期过长. 二.分析 具体的部署流程如下: 由上图流程进行 ...

随机推荐

  1. usb-blaster安装

    插入usb-blaster后,无法安装驱动,一直显示感叹号,更新驱动后显示“文件的哈希值不在指定的目录”这样的错误提示,解决方法如下:1.Windows键+ R,输入shutdown.exe /r / ...

  2. 五、Singleton 单例模式

    需求:保证对象只创建一次 说明: 分为懒汉式.饿汉式,通过是否一开始就创建静态对象.饿汉式需要考虑线程并发的安全 懒汉式: public class Singleton { private stati ...

  3. 手机通过Charles抓取https包

      因为fiddler不能在mac上使用,而Charles是跨平台的,可以在mac上使用,所以需要了解一下Charles的使用   安装破解版Charles   下载破解版包,先启动一次未破解版的Ch ...

  4. 【Spider】使用CrawlSpider进行爬虫时,无法爬取数据,运行后很快结束,但没有报错

    在学习<python爬虫开发与项目实践>的时候有一个关于CrawlSpider的例子,当我在运行时发现,没有爬取到任何数据,以下是我敲的源代码:import scrapyfrom UseS ...

  5. hbase备份数据与异地新建

    hbase org.apache.hadoop.hbase.mapreduce.Driver export news /tmp/news1 备份news表至hdfs的/tmp目录下面. hadoop ...

  6. 微信小程序开发——活动规则类文案文件读取及自动转换为小程序排版代码

    前言: 最近做的小程序活动规则内容比较多,且一直处于修改中.由于小程序并不支持类似Html5中的预排版,所以,活动规则内容修改较大的时候,仍需要对新的内容用小程序的<text>组件做下排版 ...

  7. 阿里读写分离数据源SELECT LAST_INSERT_ID()获取不到id

    异常现象 insert 通过 mybatis 以下语法给领域类 赋予的 id 值为0. 后续根据主键的update操作失效.且无异常抛出 <selectKey keyProperty=" ...

  8. Linq 查询 List集合

    总是听到身边的同事说起Linq ,知道上学的时候学过,可是自从毕业之后就再也没用过,总觉得是很牛的技能 ,可是当自己真正学会用的时候才发现,我去,So easy .废话不多说直接上代码吧 var li ...

  9. php libev扩展使用

    在WorkerMan源码分析 - 实现最简单的原型文章中提到了libevent网络库,前者和libev都是事件驱动编程库高性能.简单说libev对libevent做了改进和精简.libevent使用全 ...

  10. Android Studio 检查Top Activity

    public void CheckTop(String packagename,int casenum) { Context context = getBaseContext(); ActivityM ...