55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
const http = require("http");
|
|
const url = require("url");
|
|
const { ServerModel } = require('./model/ServerModel');
|
|
const { SearchModel } = require('./model/SearchModel');
|
|
const { SuccessResult, ErrorResult } = require('./model/ResultModel');
|
|
|
|
const { QQSource } = require('./source/QQSource');
|
|
|
|
|
|
// ***********************************************************************
|
|
// 注册源
|
|
const searcher = new SearchModel();
|
|
searcher.registerSourceModel(new QQSource());
|
|
|
|
|
|
// ***********************************************************************
|
|
// 添加API接口
|
|
const _server = new ServerModel();
|
|
_server.get("/api/source", (req, res, query) => {
|
|
// 罗列都有哪些源
|
|
return new SuccessResult(searcher.getSourceList());
|
|
});
|
|
|
|
_server.get("/api/search", (req, res, query) => {
|
|
//从源去进行搜索
|
|
let result = searcher.searchMusic(query.source_name, query.keywords);
|
|
return new SuccessResult(result);
|
|
})
|
|
|
|
|
|
// ***********************************************************************
|
|
// 运行服务
|
|
const server = http.createServer((req, res) => {
|
|
let method = req.method;
|
|
let reqUrl = req.url;
|
|
let reqApi = reqUrl.split('?')[0];
|
|
console.log(method);
|
|
let result;
|
|
if(method == "GET") {
|
|
let query = url.parse(reqUrl, true).query;
|
|
result = _server.trigger(method, reqApi, req, res, query, null);
|
|
}else if(method == "POST") {
|
|
let query = url.parse(reqUrl, true).query;
|
|
let data = {};
|
|
result = _server.trigger(method, reqApi, req, res, query, data);
|
|
}
|
|
res.writeHead(200, {'Content-type': 'text/plain;charset=utf-8'});
|
|
res.end(JSON.stringify(result));
|
|
});
|
|
|
|
server.listen(5000, () => {
|
|
console.log("server running at prot 5000");
|
|
});
|
|
|