node.js - 如何根据环境更改 Meanapp 或 Nodejs 应用程序中的基本 Url?

标签 node.js base-url

例如:-
我使用 API 在本地运行应用程序(返回 json)

http://localhost:8000/userslist -(返回json)

我可以使用什么插件来更改 Mean App 中的基本 URL?

请现在建议一个插件,我正在使用一些代码来启动服务器:-

 app.set('port',process.env.PORT||8000)
//console.log('Your app running on Environment :-',process.env.PORT);

var server=http.createServer(app).listen(app.get('port'),function(){
    console.log('express server listening on port'+app.get('port'));
});

但我认为它可能不会产生所需的结果。

示例:- 现在我正在调用 api http.get(baseurl+'user/1') 其中 baseurl=' http://localhost:8000 '。 当应用程序部署到开发服务器时,它应该使用 dev string .. http://dev.mydomain.com 重写 baseurl,而不是 localhost:8000 以相同的方式进行生产。对于问题中的困惑,我们深表歉意。

感谢您提前提供帮助!!

最佳答案

如果“baseurl”是指域名。 。 。你真的无法改变这一点。它将位于本地主机或您设置的任何服务器的域上。除非您向 /etc/hosts 添加一个条目,将 localhost 指向其他域。如果你指的是路径的一部分。 。 。这就是express的用途(“MEAN”中的“E”)。只是:

var express = require('express');
var app = express();
app.get('/userlist', function() { // get users from Mongo });

如果您的意思不是其中之一,那么您需要澄清您的问题。也许可以举一个所需的输出/效果的例子。

编辑:

哦,您想根据环境指向不同的端口吗?

编辑2:

根据您的评论,您不需要为此进行配置。大多数时候,您只想使用相对路径并让服务器计算出域部分。例如,不要重定向到“my.specialdomain.com/foo”。只需重定向到“/foo”,Express/服务器/浏览器就会完成剩下的工作。与客户端链接相同 - 只需使用相对路径:

<a href="/foo/bar">Blah</a>

与客户端的请求相同。它们理解相对路径,因此您(大多数时候)可以使用 http.get('/foo/bar') 之类的东西(不确定您正在使用什么库,因此请根据需要进行调整)。

如果由于某种原因,您需要包含域 - 例如如果您想从 http 重定向到 https - 您可以从 Host header 中获取它。对于express,只需使用req.hostname。这将为您提供减去端口的域。然后,如果需要,您可以有选择地包含端口。如果您需要经常这样做,您可能会考虑使用特殊的中间件功能来进行设置。例如:

app.use(function(req, res, next) {
  // Or maybe a switch on process.env.NODE_ENV if you have more than 2 environments
  req.hostWithPort = req.hostname + (process.env.NODE_ENV === 'production' ? '' : ':' + app.get('port'));
  next();
});

然后在需要的地方使用它,例如:

res.redirect(301, 'https://' + req.hostWithPort);

关于node.js - 如何根据环境更改 Meanapp 或 Nodejs 应用程序中的基本 Url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28646558/

相关文章:

node.js bodyParser 错误

tomcat - Pentaho 仪表板不显示图形

css - 代码点火器 : base_url() at CSS file doesn't work

javascript - Nodejs异步mongodb保存或更新

node.js - 将 Angular 4/NodeJS 部署到 Heroku

node.js - 如何在端口 3001、3002 等上运行 Node/Express App?

javascript - RequireJS require() 无法解析同一子目录级别的文件名

php - 到底什么是 baseUrl

node.js - Sails.js 模型 : create 2 association to self failed