我知道這個錯誤已經被問了一百萬次,但我相信答案不是正確的或者不是最有效的。
// import all libraries
const express = require('express');
const cors = require('cors');
const mongoose = require('mongoose');
const app = express();
require('dotenv').config();
// setup connections
mongoose.connect(process.env.MONGODB_URL)
.then(() => console.log("Connected to DB ??"))
.catch(() => console.log("Couldn't connect to db ?"));
// setup middlewares
app.use(cors()); // CORS => Cross origin resource sharing; // share frontend <-> backend
app.use(express.json());
// setup routes
app.use("/api/auth", require("./routes/user"));
app.use("/api/books", require("./routes/book"));
app.use("/api/rentals", require("./routes/rental"));
// start listening on server
const port = process.env.PORT;
app.listen(port, () => {
console.log("Server running...");
})
有我的代碼供參考。如果我在 .env 中將埠從 5000 更改為 5500,則一切正常。如果我停用空中播放埠,一切正常。
我的問題是,當我在 PORT 5000 中運行 dotnet api 服務器時沒有錯誤。
為什么我可以在 5000 中毫無問題地運行 dotnet 服務器,但在節點中卻給我一個錯誤?
我運行 lsof -i tcp:5000 同時運行我的 dotnet api:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
firefox 938 arturofiliovilla 137u IPv4 0x23e78a2a111d8441 0t0 TCP localhost:59093->localhost:commplex-main (ESTABLISHED)
ControlCe 25701 arturofiliovilla 21u IPv4 0x23e78a2a108e4ed1 0t0 TCP *:commplex-main (LISTEN)
ControlCe 25701 arturofiliovilla 22u IPv6 0x23e78a1babf17ce9 0t0 TCP *:commplex-main (LISTEN)
API 26565 arturofiliovilla 238u IPv4 0x23e78a2a12ba39b1 0t0 TCP localhost:commplex-main (LISTEN)
API 26565 arturofiliovilla 239u IPv6 0x23e78a1babf09189 0t0 TCP localhost:commplex-main (LISTEN)
API 26565 arturofiliovilla 241u IPv4 0x23e78a2a10910ed1 0t0 TCP localhost:commplex-main->localhost:59093 (ESTABLISHED)
也許有一個掩蔽?我不確定,但我的 dotnet 服務器沒有錯誤。
任何想法為什么會發生這種情況?
uj5u.com熱心網友回復:
- 當您僅指定埠 5000 時, Node.js/Express 嘗試系結到
[::]:5000和/或0.0.0.0:5000默認情況下。這就是發生沖突的原因。 - 但是,ASP.NET Core 默認系結到
localhost:5000.
如果您閱讀更多有關計算機網路的內容,您會發現這兩種系結方法之間的差異有多大。
您可以嘗試讓 Express 系結到localhost:5000aka
app.listen(port, "localhost", () => {
console.log("Server running...");
})
參考
- https://nodejs.org/api/net.html#serverlistenport-host-backlog-callback
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/418202.html
標籤:
上一篇:在C#中使用Action<bool>委托的建構式注入
下一篇:按姓名和姓氏搜索
