首页 > 解决方案 > 如何在网络主机中访问我的后端 API?

问题描述

我需要访问我的后端 API 以从电子邮件的联系表单发送信息,我将我的应用程序部署在一个名为 Kinghost 的网络主机中,它给了我两个 url,第一个是通用mywebaddr.com:port-number的,第二个是mywebaddr.com/site.

我已经尝试将这两个地址与函数路由一起使用,就像我在 localhost 中所做的那样,为了工作,我使用了http://localhost:4000/contact例如,但它没有用......

这是我的要求:

const baseUrl = 'http://mywebsiteurl.com/contact'

const initialState = {
    message: {
        name: '',
        email: '',
        subject: '',
        main: ''
    },
}

export default class ContactUs extends Component {
    state = { ...initialState }

    reset = () =>{
        this.setState({message: initialState.message})
    }

    send = () => {

        const message = this.state.message
        const url = baseUrl
        console.log(message)
        axios.post(url, message)
            .then(this.reset())
            .then(alert('Message successfully sent!'))
    }

这是我的 index.js(后端)


const express = require('express')
const app = express()
const consign = require('consign')

const port = 4005

consign()
.then('./config/middlewares.js')
.then('./api')
.then('./config/routes.js')
.into(app)

app.listen(port, () => {
    console.log(port)
})

我的 middlewares.js 包含 cors

const bodyParser = require('body-parser')
const cors = require('cors')

module.exports = app => {
    app.use(bodyParser.json())
    app.use(cors())
}

实际上,我认为这不是因为我的代码本身,一旦我可以在 localhost 中完美执行所有内容,但不知何故我无法通过正确的 URL

我是节点新手,我猜不出我做错了什么,所以如果有人能帮助我,我会非常感激:)

标签: javascriptnode.jsreactjsapi

解决方案


这不是堆栈溢出的问题,因为您的问题不在于应用程序,而在于您的网络。无论如何,您的 API 应用程序正在端口 4005 上运行。请确保该端口已向您的托管服务提供商开放。当您使用它时,请确保您的端口 4000 也已打开。

在您确认您的防火墙设置后,如果您仍然面临问题,请更新我的答案。


推荐阅读