1.开始

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

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

2.ExpressRest

打开目录08_ExpressREST

app.js

1
2
3
4
5
6
7
8
var express = require('express');
var app = express();
<br>//捕获GET方法,并处理返回一个Json,比C#写Json简单多了啊
app.get('/'function (req, res) {
    res.json({ message: 'hooray! welcome to our api!' });
});
<br>//侦听8080端口
app.listen(process.env.PORT || 8080);

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

打开CMD让项目运行起来

1
2
cd 08_EXPRESSREST
$ node app

3.AdvancedRESTAPI

打开目录12_AdvancedRESTAPI

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

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

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

1
2
3
4
5
6
7
8
//初始化一个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.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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;

http://www.cnblogs.com/mengkzhaoyun/p/5355796.html

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

  1. 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 14.IISNode与IIS7.x

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

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

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

  6. Nodejs in Visual Studio Code 10.IISNode

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

  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. javascript 调用C++函数

    分3步: 一>实现IDispatch 接口 #ifndef _IDISPIMP_H_ #define _IDISPIMP_H_ // idispimp.h class CImpIDispatch ...

  2. 【JAVA编码专题】总结 分类: B1_JAVA 2015-02-11 15:11 290人阅读 评论(0) 收藏

    第一部分:编码基础 为什么需要编码:用计算机看得懂的语言(二进制数)表示各种各样的字符. 一.基本概念 ASCII.Unicode.big5.GBK等为字符集,它们只定义了这个字符集内有哪些字符,以及 ...

  3. x265探索与研究(四):怎样编码视频?

    怎样编码视频?           本文介绍x265中的两种编码视频方法,一是採用命令行的方法.二是GUI的方式.   1.命令行的方法   (1).第一种方式生成*.265格式的视频文件       ...

  4. Wampserver 2.5 多网站配置方法

    写在开头:本文适用于wampserver2.5版本号,和wamp的老版本号配置有语法上的差别,笔者正是由于被老版本号的配置办法给整迷糊了所以才总结了一篇针对2.5版本号的配置方法,假设您还停留在1.x ...

  5. Android多线程研究(3)——线程同步和互斥及死锁

    为什么会有线程同步的概念呢?为什么要同步?什么是线程同步?先看一段代码: package com.maso.test; public class ThreadTest2 implements Runn ...

  6. 微信小程序初步运营方案

    小程序的运营方案有很多种,目前我们遇到两个事情需要解决:1.问答的内容,这块也是大家比较关心的话题.内容的定位和细节. 2.预热与推广,就这两个问题,我列出了一些自己的想法和小程序初步运营方案,有不足 ...

  7. 【C++竞赛 E】xxx和yyy的旅行

    时间限制:1s 内存限制:32MB 问题描述 有n个城市和m条双向铁路.对于任意两个不同的城市x和城市y,两个城市之间有双向铁路,否则有双向公路,通过任意一条直达公(铁)路花费一小时.城市x与城市y存 ...

  8. string与QString之间的转换(两种方法:fromStdString直接转换,或者fromLocal8Bit(cstr.c_str())

    string str;QString qstr; //从QString 到 std::stringstr = qstr.toStdString(); //从std::string 到QStringqs ...

  9. 从多路搜索树到 B-树

    1. 什么是 B 树 B 树是为磁盘或其他直接存取的辅助存储设备而设计的一种平衡二叉树: B 树类似于红黑树,但它们在降低磁盘 I/O 操作数方面要更好一点, 许多数据库系统使用 B 树或者 B 树的 ...

  10. spring+aspectJ的实现

    AspectJ:(Java社区里最完整最流行的AOP框架) spring自身也有一套AOP框架,但相比较于AspectJ,更推荐AspectJ 在Spring2.0以上版本中,可以使用基于Aspect ...