node.js - 为什么这个简单的 Express 服务器在两个端口上运行?

标签 node.js express requestjs

我有简单的 Node 服务器,如下所示:

var express = require('express');  
var request = require('request');
var apiServerHost = "http://<IP address>:3000/api#!/"


var app = express();  
app.use('/', function(req, res) {  
  var url = apiServerHost + req.url;
  req.pipe(request(url)).pipe(res);
});

app.listen(3001); 

我使用node server.js运行它。然后在浏览器中,端口 30013000 都可以访问服务器。如果我用其他东西替换 3001,它将在 3000 和其他东西上运行。

这是为什么?

最佳答案

也许您有另一个实例正在运行(在后台,在其他终端中)并监听端口 3000。

要查看哪些端口打开以及由哪个进程打开,请运行:

netstat -ltnp

要查看正在运行的进程,请运行:

ps aux | grep node

或者:

ps aux | grep server.js

尝试关闭程序并确保端口 3001 上没有任何内容监听,然后尝试访问端口 3000。

关于node.js - 为什么这个简单的 Express 服务器在两个端口上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42333024/

相关文章:

node.js - Mongoose UPDATE 功能不起作用

node.js - 如何在nodejs中获取对一个API的所有请求的状态

javascript - 查找更新的 Node Facebook 模板

javascript - Node.js : request js multipart 2nd level file and JSON. 字符串化

javascript - Node.js 和 Request.js : Finding the file extension for a download?

node.js - 为什么 jwt.sign 函数不能将我的用户识别为对象?

node.js - Mongoose 5突然出现错误 "MongoError: unknown string alias for $type: 2dsphere"

javascript - node express请求调用里面get

node.js - Passport req.logOut() 函数不起作用?

node.js - NodeJs ECONNRESET