簡體   English   中英

node.js linux 上的明確權限錯誤

[英]node.js express permission error on linux

將 arch 與管理員用戶帳戶一起使用,並且在此腳本上沒有 sudo:

var express = require('express');

var fs = require('fs');

var app = express();
app.get('/lol', function(req, res) {
    res.sendFile('second.html', {root: __dirname })
});
var port = process.env.PORT || 81;
var server = app.listen(port);

當我更改端口或 url 觸發它時,我得到這個錯誤並沒有改變它在我運行命令后立即給我這個錯誤:node site.js(上面的代碼是 site.js)


    node:events:371
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES: permission denied 0.0.0.0:81
    at Server.setupListenHandle [as _listen2] (node:net:1302:21)
    at listenInCluster (node:net:1367:12)
    at Server.listen (node:net:1454:7)
    at Function.listen (/home/{name}/node_modules/express/lib/application.js:618:24)
    at Object.<anonymous> (/home/{name}/Documents/web/demo/site.js:10:18)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:79:12)
Emitted 'error' event on Server instance at:
    at emitErrorNT (node:net:1346:8)
    at processTicksAndRejections (node:internal/process/task_queues:83:21) {
  code: 'EACCES',
  errno: -13,
  syscall: 'listen',
  address: '0.0.0.0',
  port: 81
}

如果我用 sudo 運行腳本它工作正常但我不想在 sudo 中運行它因為我必須在沒有 sudo 的服務器上運行它。 有幫助嗎?

在沒有 root 權限的情況下使用低於 1024 的端口是常見問題。 嘗試大於 1024 的端口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM