Javascript 节点:HTTPS服务器停止使用EADDRINUSE错误

Javascript 节点:HTTPS服务器停止使用EADDRINUSE错误,javascript,node.js,linux,express,https,Javascript,Node.js,Linux,Express,Https,我在Raspbian机器上设置了一个Node和Express HTTPS服务器,如下所示: constbodyparser=require('body-parser'); const express=require('express'); const multer=require('multer'); 常量https=require('https'); const cors=需要(“cors”); 常数fs=要求('fs'); const upload=multer(); 常量app=expre

我在Raspbian机器上设置了一个Node和Express HTTPS服务器,如下所示:

constbodyparser=require('body-parser');
const express=require('express');
const multer=require('multer');
常量https=require('https');
const cors=需要(“cors”);
常数fs=要求('fs');
const upload=multer();
常量app=express();
常量代码=require('./codes.js');
让privateKey=fs.readFileSync('/home/pi/Desktop/padscape/server/private.key',utf-8');
让certificate=fs.readFileSync('/home/pi/Desktop/padscape/server/server.cert','utf-8');
let credentials={key:privateKey,cert:certificate};
应用程序获取(“/”,(请求,请求)=>{
res.writeHead(400,{'Content-Type':'application/json','accesscontrolalloworigin':'*');
res.end(JSON.stringify({'Error':'Bad Request}));
});
use(bodyParser.urlencoded({extended:true}));
use(express.static(_dirname,{dotfiles:'allow'}));
use(bodyParser.json());
app.use(upload.array());
应用程序使用(cors());
应用程序使用(“/代码”,代码);
app.on('error',err=>{
log(`Error:${err}`);
});
让httpsServer=https.createServer(凭证、应用程序);
httpsServer.listen(443);
我想在引导时启动服务器,因此我已将其添加到
/home/pi/.bashrc

echo“启动时运行”
sudo定影器443/tcp
sudo节点/home/pi/Desktop/padscape/server/app.js&>~/padscape\u log.txt&
启动Raspberry Pi时,我在错误日志中看到以下错误:

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

Error: listen EADDRINUSE: address already in use :::443
    at Server.setupListenHandle [as _listen2] (net.js:1309:16)
    at listenInCluster (net.js:1357:12)
    at Server.listen (net.js:1445:7)
    at Object.<anonymous> (/home/pi/Desktop/padscape/server/app.js:31:13)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
    at Module.load (internal/modules/cjs/loader.js:1002:32)
    at Function.Module._load (internal/modules/cjs/loader.js:901:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47
Emitted 'error' event on Server instance at:
    at emitErrorNT (net.js:1336:8)
    at processTicksAndRejections (internal/process/task_queues.js:84:21) {
  code: 'EADDRINUSE',
  errno: 'EADDRINUSE',
  syscall: 'listen',
  address: '::',
  port: 443
}
events.js:288
投掷者;//未处理的“错误”事件
^
错误:侦听EADDRINUSE:地址已在使用中:::443
在Server.setupListenHandle[as _listen2](net.js:1309:16)
在ListeniCluster(net.js:1357:12)
在Server.listen(net.js:1445:7)
反对。(/home/pi/Desktop/padscape/server/app.js:31:13)
at模块编译(内部/modules/cjs/loader.js:1158:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:1178:10)
at Module.load(内部/modules/cjs/loader.js:1002:32)
at Function.Module._load(内部/modules/cjs/loader.js:901:14)
在Function.executeUserEntryPoint[作为runMain](internal/modules/run_main.js:74:12)
在internal/main/run_main_module.js:18:47
在以下位置的服务器实例上发出了“错误”事件:
在emitErrorNT(net.js:1336:8)
在处理和拒绝时(内部/process/task_queues.js:84:21){
代码:'EADDRINUSE',
错误号:'EADDRINUSE',
syscall:'listen',
地址:':',
港口:443
}

我试图将端口从443更改为8443,但没有成功。如您所见,
sudo fuser 443/tcp
应该会终止端口443中的所有服务。我该怎么办?

事实证明,我不应该从
.bashrc
运行该文件。这个文件可能会在启动时运行,但它也会在我打开新的命令行终端时运行!我同时使用了几个终端,这导致了几个错误!因此,我从
.bashrc
中删除了我的命令,并使用
/etc/rc.local
来运行它。

结果是我不应该从
.bashrc
中运行该文件。这个文件可能会在启动时运行,但它也会在我打开新的命令行终端时运行!我同时使用了几个终端,这导致了几个错误!所以我从
.bashrc
中删除了我的命令,并使用
/etc/rc.local
来运行它。

我已经尝试了在相关StackOverflow问题中找到的大多数解决方案。在我看来,我必须找到一种不同的方式在启动时运行服务器。我已经尝试了在相关StackOverflow问题中找到的大多数解决方案。在我看来我必须找到一种不同的方式在启动时运行服务器。