我正在对在本地运行的应用执行http.request(),但它遇到了错误的路线,我无法弄清楚原因......
我认为问题在于子域未得到承认。
我目前正在使用lvh.me:4000
作为我的开发应用。使用子域名时,完整的网址为api.lvh.me:4000
这是我到目前为止所拥有的。 http.request()
不断点击/*
路由并返回html。我想要的是应用程序点击/subdomain/api/*
路线......
Server.js
if (process.env.NODE_ENV === 'development') {
app.use(require('express-subdomain-handler')({
baseUrl: 'lvh.me:4000',
logger: false
}));
}
路线
// ------ Handle Missing External API Routes
app.get('/subdomain/api/*', function(req, res) {
res.status(404).json({
name: 'Missing',
message: 'Resource Not Found - Incorrect Route',
code: 'missing',
status: 404
});
});
// ------ Handle Missing Application Routes - Catch-All
app.get("/*", function(req, res) {
console.log(req)
res.status(404).render('404');
});
从另一个本地运行的应用程序执行外部请求
var options = {
hostname: api.lvh.me,
port: 4000,
path: '/missing_resource',
method: 'GET',
headers: headers
};
var req = http.request(options, function(res) {
res.setEncoding('utf8');
var body = '';
// Handle Errors
if (res.statusCode !== 200) {
// Aggregate Chunks
res.on('data', function(chunk) {
body += chunk;
});
res.on('end', function() {
return callback(JSON.parse(body), null);
});
} else {
// Aggregate Chunks
res.on('data', function(chunk) {
body += chunk;
});
// Callback
res.on('end', function() {
return callback(null, JSON.parse(body));
});
}
});
req.on('error', function(e) {
console.log('Servant SDK Error', e);
});
req.end();
同样,此处的问题是请求正在点击/*
而不是/subdomain/api/