我在服务器上运行了一个Node.js / Express.js应用程序,该应用程序仅在端口3000上运行,我试图找出原因。这是我发现的:
app.listen()
),则该应用会运行,但网页不会加载。app.listen(3001)
)或任何其他未使用的端口上,应用程序运行,但网页未加载。我知道Express应用程序默认使用端口3000。但是奇怪的是,我的应用程序仅在我明确使它运行在端口3000(app.listen(3000)
)上时运行。
我在第220行找到了这个/usr/bin/express
:
app.set(\'port\', process.env.PORT || 3000);
如前所述:将端口设置为指定的端口,如果未指定则设置为3000。
如何使我的应用程序在其他端口(例如8080或3001)上工作?
谢谢!
编辑:代码示例(非常简单的节点/ Express应用程序)
var express = require("express");
var app = express();
app.get('/', function(req, res){
res.send('hello world');
});
// Only works on 3000 regardless of what I set environment port to or how I set [value] in app.set('port', [value]).
app.listen(3000);
如果您的app.js中有类似内容,则可以使用以下方法:
http.createServer(app).listen(app.get('port'),
function(){
console.log("Express server listening on port " + app.get('port'));
});
明确地对代码进行硬编码以使用所需的端口,例如:
app.set('port', process.env.PORT || 3000);
此代码意味着将端口设置为环境变量,PORT
或者undefined
将其设置为文字3000
。
或者,使用您的环境来设置端口。通过环境进行设置可以帮助在两者之间进行区分,PRODUCTION
并且DEVELOPMENT
许多“平台即服务”都使用环境根据其规格以及内部Express配置来设置端口。以下设置环境键=值对,然后启动您的应用程序。
$ PORT=8080 node app.js
参考您的代码示例,您需要以下内容:
var express = require("express");
var app = express();
// sets port 8080 to default or unless otherwise specified in the environment
app.set('port', process.env.PORT || 8080);
app.get('/', function(req, res){
res.send('hello world');
});
// Only works on 3000 regardless of what I set environment port to or how I set
// [value] in app.set('port', [value]).
// app.listen(3000);
app.listen(app.get('port'));
我的服务器上运行了一个node.js/express.js应用程序,它只在3000端口上工作,我正在试图找出原因。以下是我的发现: 在不指定端口()的情况下,应用程序会运行,但网页不会加载。 在端口3001()或任何其他未使用的端口上,应用程序运行但网页不加载。 在端口2999上,应用程序抛出错误,因为其他东西正在使用该端口。 在端口3000上,应用程序运行,网页加载良好。 我知道Express应
在本地测试它工作。在不同的端口(3001,8080) 但在测试服务器 (Azure) 上 我在同一台机器上运行2个Node App实例 和 但它只在3000端口上工作。 如何在Express中设置不同的端口? 现在,我已经在索引上的app.listen(3001)上进行了更改.js它不起作用。
我一直在关注这个(http://socket.io/get-started/chat/)关于如何使用socket.io制作简单聊天应用程序的教程。 但是,我尝试使用Express创建它,我想知道为什么端口3000已经在使用中?除非我更改端口号,否则下面的代码将无法工作。 express是不是用端口做路由之类的其他事情?有没有一种简单的方法可以发现该端口上发生了什么? 我也可能对我需要的东西做了一些
问题内容: 我的目标是在端口80上运行Node.js。这是因为我发现node.js被某些网络阻止,这些网络不允许来自任何其他端口的流量。 看来最好的方法是通过Node.js代理Apache。我已经尝试使用node-http- proxy 来做到这一点,但是我没有任何运气。 我正在使用的代码在这里: 但是我一直收到端口80的错误“地址正在使用”。我一定做错了。 如何使用node-http-proxy
所以我遇到了一个非常奇怪的问题,我只是使用npx create-react-app初始化我的应用程序,删除不必要的文件,做了一个eslint和更漂亮的配置并运行了应用程序,我在这里看到了两个问题,第一个是我的应用程序不显示应用程序.js内容,第二个是“链接”到我的应用程序不仅仅是本地主机:3000一如既往, 是的 有人有这样的问题吗?我该怎么办?
问题内容: 说我有这段代码来分隔expressjs中的路由: 并要求在: 1)如何以最佳方式将数据库查询分为新文件? 即使我分开数据库逻辑,该文件也会变得很大。 2)什么是分隔路线的好方法?也许是单独的模块?然后要求他们都参加? 问题答案: 这里有一个类似的问题,您应该阅读:如何构建express.js应用程序? 1)您所有的查询逻辑都应放在模型中(例如,位于/ models中的模块) 2)将您的