163music-api
Version:
NeteaseMusicApi's TypeScript Version
43 lines (42 loc) • 1.4 kB
JavaScript
;
const http_1 = require('http');
const querystring_1 = require('querystring');
const util_1 = require('../util');
const typeArr = [1, 10, 100, 1000, 1002, 1004, 1006, 1009];
exports.search = (text, callback, limit = 3, offset = 0, typeNumber = 0) => {
let type = typeArr[typeNumber];
let form = {
s: text,
limit: limit,
type: type,
offset: offset
};
let postData = querystring_1.stringify(form);
let reqOption = util_1.getRequestOption('/api/search/pc', 'POST');
console.log(postData);
return new Promise((resolve, reject) => {
let req = http_1.request(reqOption, (res) => {
if (res.statusCode == 200) {
console.log(res.statusCode);
let bufs = [];
res.on('data', (chunk) => {
bufs.push(chunk);
});
res.on('end', () => {
let result = Buffer.concat(bufs);
let info = JSON.parse(result.toString());
callback && callback(info);
resolve(info);
});
}
else {
reject(res.statusCode);
}
});
req.on('error', (err) => {
reject(err);
});
req.write(postData);
req.end();
});
};