我正在使用Seneca编写Node.JS微服务,并且试图将其设置为使用https。我已经研究过使用seneca-transport选项,但是当我尝试使用Postman或浏览器连接到它时,它不起作用。
这是一个有效的示例,监听端口4000,没有https或ssl:
var seneca = Seneca()
seneca.use(Plugin,{ secretOrKey: opts.secretOrKey })
seneca.use(Web,config)
seneca.ready(() => {
var server = seneca.export('web/context')()
server.listen('4000',(err) => {
console.log(err || 'server started on: 4000')
})
})
这是尝试在seneca-web-express配置中使用seneca-transport选项。它不起作用。
var seneca = Seneca()
seneca.use(Plugin,config)
seneca.ready(() => {
var server = seneca.export('web/context')()
server.listen({
type: 'http',port: '443',host: 'foo-host',protocol: 'https',serverOptions: {
key: fs.readFileSync('./ssl/foo-host.key.pem'),cert: fs.readFileSync('./ssl/foo-host.cert.pem'),}
},(err) => {
console.log(err || 'server started on: 443')
})
})
最后,这是尝试更直接地使用seneca-transport。该端口至少侦听端口443,但未加密或不安全:
Seneca()
.use(Plugin,{ secretOrKey: opts.secretOrKey })
.use(Web,config)
.listen({
type: 'http',serverOptions: {
key: fs.readFileSync('./ssl/foo-host.key.pem'),cert: fs.readFileSync('./ssl/foo-host.cert.pem')
}
})
希望这足以使人们看到问题的代码。共享整个微服务实际上是不可能的。