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"); });