nodejs搭建https服务app.js完整配置

前面成功访问后台端口后  这个HTTPS服务器只返回了一个"访问成功"的响应。要使前台HTTPS请求能访问到ajaxRouter里面的接口应该修改配置为

1. 将ajartRouter路由(app.use(route))添加到HTTPS服务器的请求监听器app上,而不是直接添加到express对象上。修改为:

https.createServer(options, app, (req, res) => {
  // app上已包含ajaxRouter路由
  res.writeHead(200, { 'Content-Type': 'text/html;charset=utf8' });
  res.end('访问成功') 
})

2. 删除原来直接添加到express对象上的app.use(route),改为只在HTTPS服务器请求监听器app上添加(第1步已完成)

3. 启动服务器,HTTPS请求就会先访问请求监听器app,进而访问ajaxRouter路由,从而返回对应接口的响应。

修改后的示例代码:

const express = require('express') 
const route=require("./routes/backStage/ajaxRouter")

const app = express() 
app.use(route)

const https = require('https')
const options = { /* ... */ }

https.createServer(options, app, (req, res) => {
  // app上已包含ajaxRouter路由
  res.send('ok')
}).listen(9999)

完整代码

const express = require('express') //加载express资源
const bodyParser=require("body-parser")//一个Express中间件,用于解析HTTP请求体,获得请求的数据

const app = express() //返回一个express服务器对象
const https = require('https')
const fs = require('fs')
const path = require('path');
const logger=require("morgan");//日志模块
const favicon=require("serve-favicon") //用于设置和提供 favicons(网页标签图标)。

//导入ajaxRouter这个路由
const route=require("./routes/backStage/ajaxRouter")
const route1=require("./routes/applet/ajaxRouter");


// 日志模块放在最上方
app.use(logger("dev"))//调用日志,配置为dev(开发)模式

// 使用bodyParser应该在路由前
// extended:false:表示使用系统模块query string来处理数据
// extended:true 表示使用第三方模块qs来处理
app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

//使用路由,放在静态资源路径前面
app.use(route)
app.use(route1)

//设置静态资源路径
//__dirname指向当前文件的根目录
app.use(express.static(__dirname+"/public"))
//设置小图标
app.use(favicon(__dirname+"/public/images/favicon.ico"))


//ssl证书
const options = {
    key:fs.readFileSync(path.join(__dirname,'./ssl/gathorereams.cn.key')),
    cert:fs.readFileSync(path.join(__dirname,'./ssl/gathorereams.cn.pem'))
}




const server = https.createServer(options,app,(req,res)=>{
    res.writeHead(200, { 'Content-Type': 'text/html;charset=utf8' });
    res.end('访问成功')
})

server.listen(9999, () => {
    console.log('服务已开启9999');
})

你可能感兴趣的:(javascript,开发语言,ecmascript)