在.fl-post-grid-post {
font-size: 14px;
}
.fl-post-feed-post {
border: 0;
}
.fl-post-text {
padding: 20px;
}
.fl-post-text p {
font-size: 16px;
}
.fl-post-text .textarea p {
font-size: 16px;
font-weight: 600;
}
.fl-post-text .textarea ol li {
font-size: 16px;
font-weight: 600;
}
.fl-post-text .one-sixth {
font-size: 16px;
font-weight: 700;
color: white;
width:100%;
margin-bottom: 2px;
}
.fl-post-text .one-sixth span {
background-color: #d81452;
padding: 5px;
}
.fl-post-text .five-sixths {
border-left: solid 2px #CACACA;
padding-left: 20px;
}
.spacer
{ height: 15px;
}
.fl-post-text .textarea {background-color:#F1EBEB;
border-bottom: solid 2px #CACACA;
padding: 10px;
}
.fl-post-text h2 {font-size: 18px;
}
.fl-post-title {
font-size: 20px;
font-weight: 700;
line-height: 26px;
margin: 0;
padding: 10px 0 5px;
}
.fl-post-title span {
background-color: #f4dbdf;
padding: 5px;
}
.fl-post-meta {
padding: 0 0 15px;
}
.point ::before{
content: '';
display: inline-block;
margin-left:-28px;
width: 15px;
height: 15px;
-moz-border-radius: 15px;
-webkit-border-radius:15px;
border-radius:15px;
background-color: grey;
}
库中,文档指出您可以使用http-proxy-middleware
选项指定代理请求的位置。但是,它们还允许您使用target
选项来指定一个函数,该函数将在运行时用于功能上解析目标。
文档:https://www.npmjs.com/package/http-proxy-middleware
我正在使用TypeScript,如果我查看代理的声明文件,我会看到:
您可以在此处看到router
和router
都可以为空。我的假设是,如果您使用一个,则可以省略另一个,但是您始终至少需要1。
但是,如果我这样使用target
属性:
router
并省略app.use("/pipe", proxy({
changeOrigin: true,
router: (req: IIncomingMessageWithCookies) => {
return "https://www.google.com";
}
}));
,然后在运行时出现此错误:
target
我意识到我可以在> node ./dist/app.js
C:\SkyKick\SkyKick.SEWR\src\node_modules\http-proxy-middleware\lib\config-factory.js:43
throw new Error(ERRORS.ERR_CONFIG_FACTORY_TARGET_MISSING)
^
Error: [HPM] Missing "target" option. Example: {target: "http://www.example.org"}
at Object.createConfig (C:\SkyKick\SkyKick.SEWR\src\node_modules\http-proxy-middleware\lib\config-factory.js:43:11)
at new HttpProxyMiddleware (C:\SkyKick\SkyKick.SEWR\src\node_modules\http-proxy-middleware\lib\index.js:17:30)
at module.exports (C:\SkyKick\SkyKick.SEWR\src\node_modules\http-proxy-middleware\index.js:4:10)
at Object.<anonymous> (C:\SkyKick\SkyKick.SEWR\src\dist\app.js:8:18)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
中放入几乎所有内容,并且可以正常运行,而我的target
函数实际上就是定义目标代理的东西。这只是库中的错误,还是我误解了这两个选项的用途?
答案 0 :(得分:1)
同时包含target
和router
属性。 router
属性用于将option.target
重新定位为特定请求。
import express = require('express');
import proxy = require('http-proxy-middleware');
const app = express();
app.use('/api', proxy({
target: 'http://www.github.com',
changeOrigin: true,
router: function (req: IncomingMessage) {
return 'http://www.stackoverflow.com'
}
}));
app.listen(3000);
target
属性在Config
类型中是可选的,因为在我们use the shorthand like this时允许为空:
app.use('/api', proxy('http://www.github.com',
{
changeOrigin: true,
router: function (req: IncomingMessage) {
return 'http://www.stackoverflow.com'
}
}
));