gpt4 book ai didi

javascript - 在同一台服务器上运行 deployd 和 angular.js 应用程序

转载 作者:行者123 更新时间:2023-11-30 17:28:16 26 4
gpt4 key购买 nike

我正在尝试运行 deployd API 与我的 AngularJS 在同一台服务器上应用程序,但部署似乎与应用程序路由冲突。

我部署的服务器正在监听端口 5000,如下所示:

var deployd = require('deployd');

var server = deployd({
port: process.env.PORT || 5000,
env: 'production',
db: {
host: 'localhost',
port: 27017,
name: 'deployd',
credentials: {
username: 'myUsername',
password: 'myPassword'
}
}
});

server.listen();

server.on('listening', function() {
console.log("Server is listening");
});

server.on('error', function(err) {
console.error(err);
process.nextTick(function() { // Give the server a chance to return an error
process.exit();
});
});

我的 AngularJS 应用程序 Node 服务器正在监听端口 3000,如下所示:

var express = require('express');
var app = express();

app.use(express.static(__dirname + '/public'));

app.listen(process.env.PORT || 3000);

应用程序加载正常,尽管在进行如下调用时未按预期访问 API:

$http.get('localhost:5000/foo')

或者这个:

$http.get('http://my.public.ip.address:5000/foo')

我的页面路由(在 HTML5 模式下,URL 中没有 #)被 deployd 劫持了——因此 AngularJS 为 '/foo' 路由的 URL 正在访问 API 并返回“Cannot GET/foo”。

这一切都发生在一台也运行 Apache 的服务器上,但它被配置为使用如下方式将对我的域的请求转发到端口 3000:

NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName my.domain.com

ProxyPreserveHost on
ProxyPass / http://localhost:3000/

<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>

如果我在 URL 中使用 #,比如 http://my.domain.com/#/foo,它将返回由 AngularJS 路由器指示的页面模板,但它缺少数据因为 API 未在端口 5000 上命中。

如有任何帮助,我们将不胜感激。

最佳答案

原来这是我的 Express server.js 代码的问题,与 Deployd 无关。我一直看到 Cannot GET/foo 消息并假设 Deployd 正在尝试获取资源,但实际上 Express 没有加载 index.html(加载 AngularJS 和我的路由代码),因为它是只是尝试加载一个名为 foo 的静态文件。

这是我修复的server.js:

var express = require('express');
var app = express();

app.use(express.static(__dirname + '/public'));
app.use(function(req, res) {
res.sendfile(__dirname + '/public/index.html');
});

app.listen(process.env.PORT || 3000);

现在,如果静态文件 foo 不存在,它会加载 index.html 并允许我的 AngularJS 路由器接管。

关于javascript - 在同一台服务器上运行 deployd 和 angular.js 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23788206/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com