http.request()将无法在具有子域的本地环境中工作

时间:2014-08-06 23:34:41

标签: node.js express

我正在对在本地运行的应用执行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/

0 个答案:

没有答案