server.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. const express = require('express');
  2. const axios = require('axios');
  3. const app = express();
  4. const cors = require('cors');
  5. app.use(cors());
  6. // 中间件,用于解析 JSON 请求体
  7. app.use(express.json());
  8. // 接口路由
  9. app.post('/process-urls', async (req, res) => {
  10. try {
  11. const { urlArr } = req.body;
  12. if (!urlArr || !Array.isArray(urlArr)) {
  13. return res.status(400).json({ error: 'urlArr 必须是一个数组' });
  14. }
  15. const requests = urlArr.map(url => {
  16. return axios.get(url, {
  17. headers: {
  18. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36',
  19. 'Referer': 'https://mp.weixin.qq.com/',
  20. 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
  21. }
  22. })
  23. .then(res => ({
  24. url: url,
  25. data: res.data
  26. }))
  27. .catch(error => ({
  28. url: url,
  29. error: error.message
  30. }));
  31. });
  32. const results = await Promise.all(requests);
  33. // 过滤掉没有数据的项
  34. const contents = results.filter(item => item.data);
  35. res.json({ contents });
  36. } catch (error) {
  37. console.error('处理请求时出错:', error);
  38. res.status(500).json({ error: '服务器内部错误' });
  39. }
  40. });
  41. // 启动服务器
  42. const PORT = 9998;
  43. app.listen(PORT, () => {
  44. console.log(`服务器运行在 http://localhost:${PORT}`);
  45. });