Next.js前端在构建和部署后阻止来自Express Server的请求

时间:2020-05-14 21:29:39

标签: javascript node.js express next.js vercel

请考虑我的情况:我有一个http到https的问题。我刚刚将我的next.js应用程序成功部署到vercel.com,该应用程序将其从http更改为https。然后,添加域名后,我在网络浏览器中检查了新部署的应用程序,并成功加载了该应用程序。但是,当我尝试登录时未成功。这是必须解决的。

EXPRESS.JS: (自签名证书!) (由于stackoverflow过滤器,https后有意留出空格):

// server.js
var fs = require('fs')
var https = require('https')
const cors = require('cors');

if (process.env.NODE_ENV === 'development') {
    app.use(cors({ origin: `${process.env.CLIENT_URL}` }));
}



https.createServer({
    key: fs.readFileSync('server.key'),
    cert: fs.readFileSync('server.cert')
  }, app)
  .listen(443, function () {
    console.log('Listening on port 443!')
  })

NEXT.JS: (由于stackoverflow过滤器,https后有意留出空间)

// next.config.js:
module.exports = {
    publicRuntimeConfig: {
        APP_NAME: 'mydomain.com',
        API_PRODUCTION: 'http://123.45.67.89:443/api',
        API_DEVELOPMENT: 'http://123.45.67.89:443/api',
        PRODUCTION: false,
        DOMAIN_PRODUCTION: 'https ://mydomain.com',
        DOMAIN_DEVELOPMENT: 'http://123.45.67.89:80',
    }
};

config.js

import getConfig from 'next/config';
const { publicRuntimeConfig } = getConfig();

export const API = publicRuntimeConfig.PRODUCTION
    ? publicRuntimeConfig.API_PRODUCTION
    : publicRuntimeConfig.API_DEVELOPMENT;

export const APP_NAME = publicRuntimeConfig.APP_NAME;

export const DOMAIN = publicRuntimeConfig.PRODUCTION
    ? publicRuntimeConfig.DOMAIN_PRODUCTION
    : publicRuntimeConfig.DOMAIN_DEVELOPMENT;

此外,我已将域注册商的名称服务器更新为Vercel。

在Vercel上投入生产版本上线后,该站点将显示并单击静态的东西:单击联系人,注册页面,登录页面。但是,如果我尝试登录,则每次都会失败。当我检查开发人员工具时,它表明请求仍在发送给IP。

如果我尝试邮递员,则只有http://123.45.67.89:443/api/signin有效,而mydomain.com/api则无效。

我可能会做错什么人?

在开发中,从前端到后端的所有通信都完美运行!现在不再互相交谈,因为当我尝试登录时,morgan没有显示任何内容。

0 个答案:

没有答案