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

本文介绍如何使用Node.js生成API文档,并通过Stubby Server模拟HTTP请求响应,还涉及了Forever模块的应用来确保应用程序持续运行。此外,还介绍了如何配置gulp任务来自动化这些过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值