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"
}
]
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",