【问题标题】:Error in running server via node and express通过节点和快递运行服务器时出错
【发布时间】:2020-05-06 14:13:18
【问题描述】:

我还是后端新手,但从昨天开始,每当我尝试运行我的服务器时,我都会遇到错误。以下是我的代码和错误

 const express = require("express");
const app = express();

PORT = 8443;

app.listen("PORT", () => {
    console.log("Server up and running")
});

这是我的错误

    events.js:288
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied PORT
←[90m    at Server.setupListenHandle [as _listen2] (net.js:1292:21)←[39m
←[90m    at listenInCluster (net.js:1357:12)←[39m
←[90m    at Server.listen (net.js:1456:5)←[39m
    at Function.listen (C:\Users\AbTorres9\Desktop\YelpCamp\node_modules\←[4mexpress←[24m\lib\application.js:618:24)
    at Object.<anonymous> (C:\Users\AbTorres9\Desktop\YelpCamp\app.js:6:5)
←[90m    at Module._compile (internal/modules/cjs/loader.js:1158:30)←[39m
←[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)←[39m
←[90m    at Module.load (internal/modules/cjs/loader.js:1002:32)←[39m
←[90m    at Function.Module._load (internal/modules/cjs/loader.js:901:14)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)←[39m
Emitted 'error' event on Server instance at:
←[90m    at emitErrorNT (net.js:1336:8)←[39m
←[90m    at processTicksAndRejections (internal/process/task_queues.js:84:21)←[39m {
  code: ←[32m'EACCES'←[39m,
  errno: ←[32m'EACCES'←[39m,
  syscall: ←[32m'listen'←[39m,
  address: ←[32m'PORT'←[39m,
  port: ←[33m-1←[39m
}
[nodemon] app crashed - waiting for file changes before starting...

【问题讨论】:

  • 你是在本地远程运行它吗?

标签: node.js express nodemon


【解决方案1】:
const express = require("express");
const app = express();
const PORT = 8443;
app.listen(PORT, () => {
     console.log("Server up and running")
});

首先你有一些错误,你没有初始化 PORT,其次你在 app.listen() 中将 PORT 作为字符串传递

【讨论】:

  • 我明白了,谢谢,我怎么会犯这么小而愚蠢的错误。上帝保佑我!
  • 很高兴为您提供帮助。如果对ans有帮助,请点赞
【解决方案2】:

你错过了一个查看普通 JavaScript 的东西。比如定义port.listen 函数接受端口变量而不是字符串 "PORT" 请参阅工作示例:

const express = require('express');
const app = express();
const port = 8443;

app.listen(port, () => console.log(`Server running on port ${port}!`));

【讨论】:

  • 我知道你在建议一种写这篇文章的方法,但它仍然不适合我。
  • 您使用我的代码示例是否遇到同样的错误?因为它对我来说很好用。
【解决方案3】:

@Abhishek,我认为您使用的端口被您的环境阻止,请在防火墙上允许它,或者只是禁用防火墙并再次访问它对您有用!

【讨论】:

  • 我关闭了防火墙,但它仍然显示相同的错误 :( 我想我应该在这样做后重新启动我的系统
【解决方案4】:

您应该在 app.listen() 函数中使用 variable 而不是 string。尝试使用这样的东西:

app.listen(PORT, () => {
    console.log("Server up and running")
});

【讨论】:

  • 我明白了,谢谢,我怎么会犯这么小而愚蠢的错误。上帝保佑我!
  • 没关系。我总是犯一些导致错误的小错误。
猜你喜欢
  • 1970-01-01
  • 2020-03-17
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 1970-01-01
  • 2018-11-02
  • 2023-04-10
相关资源
最近更新 更多