我正在开发一个使用子域名的快速项目。
现在我面临的问题是我的域名是(“companyName.co.in”),我的节点JS代码正在考虑将companyName作为子域名。
这是我的代码:
server.js
var express = require('express');
var app = express();
var subdomain = require('express-subdomain');
var bodyParser = require('body-parser');
var path = require('path');
var expressValidator = require('express-validator');
var expressJwt = require('express-jwt');
var jwt = require('jsonwebtoken');
var cors = require('cors');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
app.use(cors());
//app.use(cookieParser());
app.use(express.static('../app'));
app.use(express.static('static/'));
app.use('/api/user',require('./controllers/user.controller'));
var server = app.listen(3000,function(){
console.log('Server listening at 3000');
});
user.controller.js
var express = require('express');
var router = express.Router();
router.get("/details", getUserDetails);
function getUserDetails(req, res) {
var subdomain = (req.subdomains.length > 0) ? req.subdomains[0] : '';
console.log(subdomain)
}
module.exports = router;
因此,当我调用api / user / details时,我发现它将companyName作为子域名。
喜欢:从“companyName.co.in”请求 子域名应该为null,但它给我子域名作为companyName。
请问如何让节点服务器知道“companyName.co.in”这是主机,并允许“* .companyName.co.in”子域可以是任何东西。
答案 0 :(得分:1)
您可以通过设置'子域偏移量来解决此问题。将应用设置设为 3 。
http://expressjs.com/en/4x/api.html#app.settings.table
var express = require('express');
var app = express();
app.set('subdomain offset', 3);