【原创】api接口模拟器(NodeJS版)
最近遇到一个项目,内网的APP,后端数据和前段开发属于异地,没法直接做接口数据测试。因此用NodeJs简单写了个API模拟器,只要将响应的数据放在对应目录下json.json文件中即可。
请求地址全静态话,暂未考虑参数问题。
具体代码如下:
main.js文件
'use strict';
var
fs = require('fs'),
url = require('url'),
path = require('path'),
http = require('http'),
port = process.argv.splice(2);
port = parseInt(port, 10);
port = isNaN(port) || port == 0 ? 8111 : port;
// 创建http server,并传入回调函数:
var server = http.createServer(function(request, response) {
// 跨域请求
let origin = request.headers.origin;
origin = origin ? origin : "*";
response.setHeader("Access-Control-Allow-Origin", origin);
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
response.setHeader("Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept,X-Tag,authKey,vtoken,sessionID");
response.setHeader("Access-Control-Allow-Credentials", true);
var pathname = url.parse(request.url).pathname;
// 关闭nodejs 默认访问 favicon.ico
if (!pathname.indexOf('/favicon.ico')) {
return;
};
if (pathname == "/") {
//默认首页
response.end('It`s Work!');
} else {
var filepath = path.join(__dirname, pathname);
fs.stat(filepath, function(err, stats) {
if (!err && stats.isFile()) {
// 没有出错并且文件存在:
console.log('200 ' + request.url);
// 发送200响应:
response.writeHead(200);
// 将文件流导向response:
fs.createReadStream(filepath).pipe(response);
} else {
var fileArr = pathname.split(".");
if (fileArr.length === 2) {
if (fileArr[1].length <= 4) {
console.log('404 ' + request.url);
// 发送404响应:
response.writeHead(404);
response.end('404 Not Found');
}
}
var _filepath = path.join(filepath, "/json.json");
fs.stat(_filepath, function(_err, _stats) {
if (!_err && _stats.isFile()) {
// 没有出错并且文件存在:
console.log('200 ' + request.url);
// 发送200响应:
response.writeHead(200);
// 将文件流导向response:
fs.createReadStream(_filepath).pipe(response);
} else {
console.log('404 ' + _filepath);
response.writeHead(404);
response.write('<head><meta charset="utf-8"/></head>');
response.end('请将相应结果写入[' + _filepath + "]文件中");
}
})
}
})
}
});
// 让服务器监听端口:
server.listen(port);
console.log('Server is running at http://127.0.0.1:' + port + '/');运行的时候只需要执行
node main.js 8811
其中8811为端口号,如果不写默认则是8111端口。
请求地址:http://127.0.0.1:8811/App/login
响应文件则是:\App\login\json.json



