Node Express:请求将顶级域作为子域??
Node Express: Requests are taking Top-level domain as the subdomain ??
我正在做一个使用子域名的快递项目。
现在我面临的问题是我的域名是 ("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" 请求
subdomain 应该为 null 但它给了我 subdomain as companyName.
你能帮我如何让节点服务器知道"companyName.co.in"这是主机并且还允许“*.companyName.co.in”子域可以是任何东西。
您可以通过将 'subdomain offset' 快速应用设置设置为 3.
来解决您的问题
http://expressjs.com/en/4x/api.html#app.settings.table
var express = require('express');
var app = express();
app.set('subdomain offset', 3);
我正在做一个使用子域名的快递项目。
现在我面临的问题是我的域名是 ("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" 请求 subdomain 应该为 null 但它给了我 subdomain as companyName.
你能帮我如何让节点服务器知道"companyName.co.in"这是主机并且还允许“*.companyName.co.in”子域可以是任何东西。
您可以通过将 'subdomain offset' 快速应用设置设置为 3.
来解决您的问题http://expressjs.com/en/4x/api.html#app.settings.table
var express = require('express');
var app = express();
app.set('subdomain offset', 3);