为什么子域名不能与express.js一起使用?

时间:2017-03-19 16:19:46

标签: javascript node.js express hosts

所以我在本地试验它,这是我的主机文件

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相同(就像它被覆盖一样) 我的错误是什么? 感谢

1 个答案:

答案 0 :(得分:0)

这是请求处理问题的顺序。在子域之后移动主域的请求处理程序的声明:

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