`
sillycat
  • 浏览: 2486262 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

NODEJS(19)Generate Docs and Stubby Server and forever Server

 
阅读更多
NODEJS(19)Generate Docs and Stubby Server and forever Server

1. Docs
In package.json
"gulp-jsdoc" : "0.1.4",

gulp config file gulpfile.js
var jsdoc = require("gulp-jsdoc");
//run app using nodemon
gulp.task('docs', [], function(){
return gulp.src(paths.sources)
.pipe(jsdoc("./docs"));
});

Comments example
/**
* @desc authutil is a nice tool
* @author sillycat
* @module authutil
*/

/**
* @desc decode the token we get from Authorization header
* @param {string} token - token string from the header
* @return {HashMap} - key value pairs about auth info
*/

2. forever
Install forever on small server
> npm install forever -g

Verify the installation
>  forever -h

Command to start the app.js
> forever start --minUptime 10000 --spinSleepTime 10000 -a -l forever.log -o out.log -e err.log app.js

Command to list the apps
> forever list

Stop the first process
>  forever stop 0

3. Stubby Server
That is really amazing server.
Create a json file there named tasks.json
- request:
     url: ^/tasks$
  response:
     latency: 8000
     headers:
          content-type: application/json
     status: 200
     body: >
          [{
          "title": "nodejs project",
          "desc": "I love nodejs"
          },{
          "title": "scala project",
          "desc": "I used scala for long time"
          },{
          "title": "golang project",
          "desc": "it is fastest language I used"
          }
          ]

- request:
     url: ^/tasks/query$
     query:
          type1: value1
          type2: value2
  response:
          latency: 1000
          headers:
               content-type: application/json
          status: 200
          body: >
               [{
               "title": "nodejs project",
               "desc": "I love nodejs"
               }]

- request:
          url: ^/tasks$
          method: post
          headers:
               content-type: application/json
   response:
          status: 204

The command to install the server
> sudo npm install -g stubby

The command to start the server
> stubby -d test/mock_server/tasks.json -w -l 0.0.0.0 -s 5000
Which is using YAML style to define the request and response.

Integrate that with gulp, I am using the JSON style.
[
{
"request": {
"url": "^/tasks$"
},
"response": {
"latency": 8000,
"headers": {
"content-type": "application/json"
},
"status": 200,
"body": [{
"title": "nodejs project",
"desc": "I love nodejs"
},{
"title": "scala project",
"desc": "I used scala for long time"
},{
"title": "golang project",
"desc": "it is fastest language I used"
}]
}
},
{
"request": {
"url": "^/tasks/query$",
"query": {
"type1": "value1",
"type2": "value2"
}
},
"response": {
"latency": 1000,
"headers": {
"content-type": "application/json"
},
"status": 200,
"body": [{
"title": "nodejs project",
"desc": "I love nodejs"
}]
}
},
{
"request": {
"url": "^/tasks$",
"method": "post",
"headers": {
"content-type": "application/json"
}
},
"response": {
"status": 204
}
}
]

Integrate with gulp.
"gulp-stubby-server": "^0.1.3",

var stubby = require('gulp-stubby-server');

//mock server
gulp.task('mock', function(cb) {
var options = {
files: [
'test/mock/*.{json,yaml,js}'
],
stubs: 5000,
location: '0.0.0.0'
};
stubby(options, cb);
});

References:
http://usejsdoc.org/about-getting-started.html
https://github.com/jsdoc3/jsdoc
https://www.npmjs.com/package/gulp-jsdoc

http://www.jianshu.com/p/6c49e2a0cebe
http://www.qttc.net/201308361.html
http://ctripcruise.github.io/2014/12/16/FHY-jsdoc.html

stubby server
https://github.com/mrak/stubby4node
https://github.com/felixzapata/gulp-stubby-server
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics