1.开始

下载源码:https://github.com/sayar/NodeMVA

Express组件:npm install express -g(全局安装)

2.ExpressRest

打开目录08_ExpressREST

app.js

var express = require('express');
var app = express();

//捕获GET方法,并处理返回一个Json,比C#写Json简单多了啊
app.get('/', function (req, res) {
res.json({ message: 'hooray! welcome to our api!' });
});

//侦听8080端口
app.listen(process.env.PORT || 8080);

现在项目都用html/js了,写个node几行代码搞定json restful,还带web服务器,感觉神清气爽啊!

打开CMD让项目运行起来

$ cd 08_EXPRESSREST
$ node app

3.AdvancedRESTAPI

打开目录12_AdvancedRESTAPI

app.js:初始化Express环境注册路由

routes/api.js :rest api的具体实现代码

app.js中,注册路由代码十分简单

//初始化一个api.js实例
var api = require('./routes/api'); //初始化一个express.js实例
var app = express(); //将指定url路由处理程序指向api.js文件
app.use('/api', api);

routes/api.js中对每个api后的url按GET\PUT\POST\DELETE分别处理

Resource

GET

PUT

POST

DELETE

Collection URI, such as http://api.example.com/v1/dogs/

List all the dogs

Replace all the dogs with a new collection of dogs.

Create a new dog in the collection.

Delete the entire dog collection.

Element URI, such as http://api.example.com/v1/dog/1

Get a specific dog.

Replace a dog in the collection with another dog.

Not used.

Delete the dog from the collection.

var express = require('express');
var router = express.Router(); var dogs = [
{
"dog_id": "0",
"dog_name": "Ginger"
},
{
"dog_id": "1",
"dog_name": "Ruby"
},
{
"dog_id": "2",
"dog_name": "Buddy"
}
]; /* GET all dogs */
router.get('/dogs/', function(req, res, next) {
res.json(dogs);
}); /* PUT replace all dogs */
router.put('/dogs/', function(req, res, next) {
console.log(req.body);
dogs = req.body;
res.json({"STATUS": "200 OK"});
}); /* POST create a new dog */
router.post('/dogs/', function(req, res, next) {
dogs.push(req.body)
res.json({"STATUS": "200 OK"});
}); /* DELETE delete the entire dog collection */
router.delete('/dogs/', function(req, res, next) {
dogs = [];
res.json({"STATUS": "200 OK"});
}); /* GET a specific dog */
router.get('/dogs/:id', function(req, res, next) {
var i = 0;
var dog = null;
for(i = 0; i != dogs.length; i++){
if(dogs[i].dog_id == req.params.id){
dog = dogs[i];
break;
}
}
dog !== null ? res.json(dog) : res.json({"STATUS": "404 NOT FOUND"})
}); /* PUT replace a specific dog with another dog */
router.put('/dogs/:id', function(req, res, next) {
var i = 0;
var dog = null;
for(i = 0; i != dogs.length; i++){
if(dogs[i].dog_id == req.params.id){
dog = dogs[i];
break;
}
}
if(dog !== null){
dog.dog_name = req.body['dog_name']
res.json({"STATUS": "200 OK"});
} else {
res.json({"STATUS": "404 NOT FOUND"});
}
}); /* DELETE a specific dog from the collection */
router.delete('/dogs/:id', function(req, res, next) {
var i = 0;
for(i = 0; i != dogs.length; i++){
if(dogs[i].dog_id == req.params.id){
dogs.splice(i, 1);
return res.json({"STATUS": "200 OK"});
}
}
return res.json({"STATUS": "404 NOT FOUND"});
}); module.exports = router;

  

Nodejs in Visual Studio Code 03.学习Express的更多相关文章

  1. crossplatform---Nodejs in Visual Studio Code 03.学习Express

    1.开始 下载源码:https://github.com/sayar/NodeMVA Express组件:npm install express -g(全局安装) 2.ExpressRest 打开目录 ...

  2. Nodejs in Visual Studio Code 07.学习Oracle

    1.开始 Node.js:https://nodejs.org OracleDB: https://github.com/oracle/node-oracledb/blob/master/INSTAL ...

  3. Nodejs in Visual Studio Code 02.学习Nodejs

    1.开始 源码下载:https://github.com/sayar/NodeMVA 在线视频:https://mva.microsoft.com/en-US/training-courses/usi ...

  4. Nodejs in Visual Studio Code 10.IISNode

    1.开始 Nodejs in Visual Studio Code 08.IIS : http://www.cnblogs.com/mengkzhaoyun/p/5410185.html 参考此篇内容 ...

  5. Nodejs in Visual Studio Code 14.IISNode与IIS7.x

    1.开始 部署IISNode环境请参考:Nodejs in Visual Studio Code 08.IIS 部署Nodejs程序请参考:Nodejs in Visual Studio Code 1 ...

  6. Nodejs in Visual Studio Code 11.前端工程优化

    1.开始 随着互联网技术的发展,企业应用里到处都是B/S设计,我有幸经历了很多项目有Asp.Net的,有Html/js的,有Silverlight的,有Flex的.很遗憾这些项目很少关注前端优化的问题 ...

  7. Nodejs in Visual Studio Code 04.Swig模版

    1.开始 设置Node_Global:npm config set prefix "C:\Program Files\nodejs" Express组件:npm install e ...

  8. Nodejs in Visual Studio Code 01.简单介绍Nodejs

    1.开始 作者自己:开发人员,Asp.Net , html / js , restful , memcached , oracle ,windows , iis 目标读者:供自己以后回顾 2.我看No ...

  9. crossplatform---Nodejs in Visual Studio Code 07.学习Oracle

    1.开始 Node.js:https://nodejs.org OracleDB: https://github.com/oracle/node-oracledb/blob/master/INSTAL ...

随机推荐

  1. sublime text3 插件配置

    (转) sublme text 全程指引:http://www.cnblogs.com/figure9/p/sublime-text-complete-guide.html 使用Package Con ...

  2. 如何参与一个GitHub开源项目

    Github作为开源项目的著名托管地,可谓无人不知,越来越多的个人和公司纷纷加入到Github的大家族里来,为开源尽一份绵薄之力.对于个人来讲,你把自己的项目托管到Github上并不表示你参与了Git ...

  3. EventBus 事件总线 原理

    原理 一句话描述:register会把当前类中匹配的方法,存入一个map,而post会根据实参去map查找进行反射调用 撇开专业术语,其实EventBus就是在内部[存储]了一堆onEvent开头的方 ...

  4. PHP 注意问题

    一.表单  1,上传文件的表单使用post方式:还要加上enctype='multipart/form-data'.     2,一般要加上隐藏域:<input type=hidden name ...

  5. Eclipse4.4安装旧版本插件报错 Failed to prepare partial IU

    Failed to prepare partial IU: [R]com.googlecode.veloeclipse.ui 2.0.8. work around: go to Help -> ...

  6. Tempdb对SQL Server性能的影响

    转载文章,原文地址:http://www.cnblogs.com/laodao1/archive/2010/04/15/1712395.html1.SQL Server系统数据库介绍 SQL Serv ...

  7. Xcode工程添加第三方文件的详细分析 Create folder references for any added folders

    在开发iOS项目的时候需要导入第三方的库文件,但是通过Xcode导入第三方源文件的时候会提示一些信息,不知所以然. 现在看到的文档都是针对Xcode3的,针对Xcode4的说明很少,现在分享出来. 官 ...

  8. <blockquote>标签,长文本引用

    <blockquote>的作用也是引用别人的文本.但它是对长文本的引用,如在文章中引入大段某知名作家的文字,这时需要这个标签. 等等,上一节<q>标签不是也是对文本的引用吗?不 ...

  9. [转]Delphi 控件属性和事件

    常用[属性] Action:该属性是与组件关联的行为,允许应用程序集中响应用户命令 Anchors:与组件连接的窗体的位置点 Align:确定组件的对齐方式 AutoSize:确定组件是否自动调整其大 ...

  10. centos yum

    1.介绍 yum(全 称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器 ...