我正在使用sslforfree创建一个带有node.js,express.js的https服务器。但每当我尝试访问https://localhost时,它都会显示错误403:拒绝访问。我的文件夹结构是这样的。
我的server.js就在这里
var express = require('express')
, fs = require('fs')
, passport = require('passport')
, logger = require('mean-logger')
, http = require('http')
, https = require('https')
, path = require('path')
var env = process.env.NODE_ENV || 'production'
, config = require('./config/config')[env]
, auth = require('./config/middlewares/authorization')
, mongoose = require('mongoose')
var db = mongoose.connect(config.db)
var models_path = __dirname + '/app/models'
fs.readdirSync(models_path).forEach(function (file) {
require(models_path+'/'+file)
})
require('./config/passport')(passport, config)
var app = express()
require('./config/express')(app, config, passport)
require('./config/routes')(app, passport, auth)
var options = {
key: fs.readFileSync(path.resolve(__dirname,'config/ssl/patarboi.key')),
cert: fs.readFileSync(path.resolve(__dirname,'config/ssl/patarboi.crt')),
ca: fs.readFileSync(path.resolve(__dirname,'config/ssl/patarboi.ca'))
};
/*app.listen(port)
console.log('Express app started on port '+port)*/
logger.init(app, passport, mongoose)
// expose app
exports = module.exports = app
var port = process.env.PORT || 443
var server = https.createServer(options, app);
server.listen(port, function () {
console.log('server at port '+port);
});
答案 0 :(得分:0)
您正尝试在端口443
上运行服务器。请记住,您的服务需要具有root权限才能收听此PORT。
最有可能443
已经在使用中。您可以netstat -a
进行检查,看看列表中是否有443
。
在Windows中,如果您使用的是Skype。当您尝试使用443
PORT时,这也会产生一些麻烦。