错误:ENOENT:没有这样的文件或目录,在Object.fs.openSync上打开'/etc/letsencrypt/live/awiclass.monoame.com/privkey.pem'(fs.js:646:18)

时间:2018-06-06 15:53:07

标签: javascript node.js socket.io

我不知道为什么我不能让我的API听4000,而我的服务器也无法正常工作,而且总是说不能找到这个“/etc/letsencrypt/live/awiclass.monoame .com / privkey.pem“文件!!!!!!结果应该是服务器套接字4040,api 4000.API侦听4000

write on the command line:

npm i socket.io express -s
var fs = require('fs')
//https的一些設定
var options = {
key: fs.readFileSync('/etc/letsencrypt/live/awiclass.monoame.com/privkey.pem'),
cert: fs.readFileSync('/etc/letsencrypt/live/awiclass.monoame.com/fullchain.pem')
}

//https & socket port
var https = require('https').createServer(options);
https.listen(4040)
var io = require('socket.io')(https);

console.log("Server socket 4040 , api 4000")

//api port
var app = require('express')();
var port = 4000;
app.listen(port, function(){
console.log('API listening on *:' + port);
});


var messages = [];

//用api方式取得
app.get('/api/messages',function(req,res){
res.send(messages);
})

io.on('connection', function(socket){
//初始化...
console.log("A user connected.");
io.emit("allMessage",messages);

socket.on('sendMessage',function(obj){
//get all message!
messages.push(obj);
console.log( obj.message + " - " + obj.name )
io.emit('newMessage', obj);
})
})


Error: ENOENT: no such file or directory, open
'/etc/letsencrypt/live/awiclass.monoame.com/privkey.pem'
at Object.fs.openSync (fs.js:646:18)
at Object.fs.readFileSync (fs.js:551:33)
at Object.<anonymous> (/Users/jennielin/index11.js:3:11)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:188:16)

1 个答案:

答案 0 :(得分:0)

您的程序试图在privkey.pem目录中查找私钥文件(/etc/letsencrypt/live/awiclass.monoame.com)。它无法找到该文件,并且因为在找不到该文件的情况下没有完成错误处理,所以它崩溃了。

您可以通过向该目录添加privkey.pem文件来解决此问题。