为什么子域无法使用 express.js?

Why the subdomains are not working with express.js?

所以我在本地进行试验,它在我的主机文件中

127.0.0.1       example.dev
127.0.0.1       www.example.dev
127.0.0.1       api.example.dev

这是我的代码:

var subdomain = require('express-subdomain');
var express = require('express');
var app = express();
var router = express.Router();

// example.com 
app.get('/', function(req, res) {
    res.send('Homepage');
});

//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);

基本上就是包网站的例子 api.example.dev/users 效果很好,但是当我转到 api.example.dev 时,内容与 example.dev 上的内容相同(就像它被覆盖了一样) 任何想法我做错了什么? 谢谢

这是一个请求处理顺序问题。将主域请求处理程序的声明移到子域之后:

var subdomain = require('express-subdomain');
var express = require('express');
var app = express();
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));

// example.com 
app.get('/', function(req, res) {
    res.send('Homepage');
});

app.listen(3000);