Экспресс-поддомен не видит маршрут - PullRequest
0 голосов
/ 26 февраля 2019

Я использую пример установки из пакета https://www.npmjs.com/package/express-subdomain.Однако, когда я пытаюсь использовать api.localhost: 3000 в браузере, он выдает ошибку: «Cannot GET /»

Как мне запустить api.localhost: 3000?Я бы рассмотрел другие решения, а не только те, которые используют express-subdomain, если вам не нужно вводить fqdn в настройке.

app.js:

var subdomain = require('express-subdomain');
var express = require('express');
var app = express();

// *** Code examples below go here! ***
var router = express.Router();

//api specific routes
router.get('/', function(req, res) {
    res.send('Welcome to our API!');
});

router.get('/users', function(req, res) {
    res.json([
        { name: "Brian" }
    ]);
});

app.use(subdomain('api', router));
app.listen(3000);

package.json:

{
  "name": "auth_manager",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.16.3",
    "express-subdomain": "^1.0.5"
  }
}

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Если вы планируете использовать это промежуточное ПО при локальной разработке, вы должны убедиться, что ваш поддомен указан в вашем файле hosts.См. здесь .

В MacOS:

  1. Настройка файла хоста для переадресации запросов от URL:

    sudo nano /etc/hosts

    127.0.0.1 myapp.dev

    127.0.0.1 api.myapp.dev

  2. Очистить кэш:

    sudo killall -HUP mDNSResponder

  3. В экспресс:

    app.use(subdomain('api', router));

  4. Любое промежуточное программное обеспечение для аутентификации необходимо настроить для аутентификации api.myapp.dev, а не localhost

  5. В Chrome вы можете использовать api.myapp.dev url

  6. Если вы используете SSL (https) и имеете самоподписанный сертификат: Chrome обычно блокирует URL-адрес хост-файла, если онне localhost.Затем вам нужно щелкнуть в любом месте окна Chrome и буквально набрать thisisunsafe, и он пропустит вас.См. Этот билет .

0 голосов
/ 26 февраля 2019

Я думаю, что API работает в http://api.example.com/, а не в api.localhost: 3000.Однако, если вы хотите запустить их локально, я советую вам следовать https://www.npmjs.com/package/express-subdomain#developing-locally

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...