【问题标题】:How to access website content from onother server with express or http如何使用 express 或 http 从另一台服务器访问网站内容
【发布时间】:2017-05-27 17:33:53
【问题描述】:

如何使用 Express 或 HTTP 从另一台服务器访问网站内容

我有一个包含所有数据的网站,例如 模板 网站

我还有 3 个网站可以访问这个网站 模板 内容 HTML CSS 网站 2 3 和 4 内的所有内容 唯一不友好的是像

这样的路线

mysite.com/template1/user1/index.html

mysite.com/template1/user2/index.html

mysite.com/template1/user3/index.html

我想在网站内部**(n)*只有从模板服务器获取 HTML CSS 和 js 内容的代码,我该怎么做?

在 PHP 中类似于

$url = $GET(www.masterserve.com/template1/ + user1 ) echo $url

我可以用 node.js 和 express 做同样的任何例子

// Get dependencies

const express = require('express');
const path = require('path');
const http = require('http');
const bodyParser = require('body-parser');

// Get our API routes
const api = require('./server/routes/api');

const app = express();

// Parsers for POST data
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

// Point static path to dist
app.use(express.static(path.join(__dirname, 'dist'))); <-- idont want static 
file only a URL from the master server

// Set our api routes
app.use('/api', api);

// Catch all other routes and return the index file
app.get('*', (req, res) => {
  res.sendFile(path.join(__dirname, 'dist/index.html'));
});

/**
 * Get port from environment and store in Express.
 */
const port = process.env.PORT || '3000';
app.set('port', port);

/**
 * Create HTTP server.
 */
const server = http.createServer(app);

/**
 * Listen on provided port, on all network interfaces.
 */
server.listen(port, () => console.log(`API running on localhost:${port}`));

【问题讨论】:

  • 因为你显示你的服务器代码,我很困惑。您是否尝试从另一台服务器获取 HTTP 内容?换句话说,您想编写代码作为 HTTP 客户端从 HTTP 服务器获取内容吗?如果是这样,您希望它在您的代码中的什么位置?
  • 我有 10 个网站具有相同的代码,唯一的区别是用户来自例如 www.mywebsite.com/user1,如果用户 1 是 iser1 数据的网站服务器
  • 或者我有 10 个域名,banana.com , foo.com 这个域有相同的代码,唯一不同的是我想要的数据有 1 个域,比如 master.com,它在模板中和来自网站banana.com获取所有内容,如iframe src="masterwebsite/user32424"
  • 在此示例中,我从 dist/index.html 获取数据我想从主服务器(如 www.masterserver/templatewebsite/user1)获取数据,并且我想从 masterserver 域获取内容- www.banana.com 内的服务器
  • 喜欢 iframe 但我不想使用 iframe。

标签: node.js express middleware node-http-proxy


【解决方案1】:

如果您尝试从您的 nodejs 应用程序中的其他服务器获取 HTTP 内容,您可以使用 request module.

request.get('http://somesite.com/template1/user3/index.html', function(err, response, body) {
    // access data from other web site here
});

如果您尝试将该数据流式传输到其他响应,您还可以.pipe() 将您请求的数据发送到另一个响应。该模块的文档显示了很多如何做到这一点的示例。

【讨论】:

  • 你能告诉我如何在这个例子中用如何创建服务器来做到这一点
  • thnx 兄弟这就是我想要的
  • 但在这段代码中,我向您展示了如何在 app.js 中做到这一点
  • @George - 我已经向您展示了如何从另一个 Web 服务器获取内容。我不明白你还想用它做什么。您的问题没有详细说明您还想要什么,所以我已经帮助了我所理解的一切。此外,这里关于堆栈溢出的问题不应该像剥洋葱那样不断地向问题添加更多内容。您应该在第一篇文章中提出一个清晰完整的问题,当人们不理解时立即回复,然后让人们回答。您不应该继续在原始问题上添加更多问题。
  • @George - 如果原始问题的答案给您留下了更多问题,那么在您自己尝试了很多事情之后,您可以提出一个新问题,了解您还需要什么帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
  • 1970-01-01
  • 2019-08-31
  • 2019-10-05
  • 1970-01-01
相关资源
最近更新 更多