import express from 'express' import qs from 'qs' import axios from 'axios' import { commonParams, paramsSign } from '../common/net.js' import { php_api_seo_ids } from '../common/apis.js' const phpResponseModel = { code: -1, msg: 'Sorry,something wrong with your network~', data: {} } // Create express router const router = express.Router() // Transform req & res to have the same API as express // So we can use res.status() & res.json() const app = express() router.use((req, res, next) => { Object.setPrototypeOf(req, app.request) Object.setPrototypeOf(res, app.response) req.res = res res.req = req next() }) const sitemapLogic = async (req, res) => { const concatXml = obj => { if (!obj) { return '' } const { article } = obj let s = `http://bbs.hoolihome.com1.002019-05-07dailyhttp://bbs.hoolihome.com/en/1.002019-05-07dailyhttp://bbs.hoolihome.com/videos/1.002019-05-07dailyhttp://bbs.hoolihome.com/en/videos/1.002019-05-07daily` article.forEach(v => { s += `http://bbs.hoolihome.com/article/${v}1.002019-05-07dailyhttp://bbs.hoolihome.com/en/article/${v}1.002019-05-07daily` }) s += `` return s } const params = {} params.url = php_api_seo_ids params.data = { type: 1 } Object.assign(params.data, commonParams()) params.data.signToken = paramsSign(params.data, params.url) phpResponseModel.data = {} const phpResponse = await axios .post(params.url, qs.stringify(params.data)) .then(result => { if (result) { let { status, data } = result if (parseInt(status) === 200 && data) { let { code } = data if (parseInt(code) === 0) { return concatXml(data.data) } } } return '' }) .catch(e => { return '' }) res.type('application/xml') res.status(200).send(phpResponse) } router.get('/sitemap.xml', sitemapLogic) // Export the server middleware export default { path: '/', handler: router }