如何在网络主机中访问我的后端API?

时间:2019-06-20 08:04:13

标签: javascript node.js reactjs api

我需要访问我的后端API,以通过电子邮件的联系表单发送信息,我将应用程序部署在名为Kinghost的网络托管中,并且给了我两个网址,第一个通常是mywebaddr.com:port-number,第二个是{ {1}}。

就像在localhost中一样,我试图最后使用两个地址和函数route,例如,为了工作,我使用了http://localhost:4000/contact,但是没有用... >

这是我的要求

mywebaddr.com/site

这是我的index.js(后端)

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!'))
    }

我的middlewares.js包含cors


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)
})

实际上,我不认为这是因为代码本身可以在localhost中完美执行所有事情,但是由于某种原因,我无法获得正确的URL

我是Node的新手,我无法猜测我做错了什么,因此,如果有人可以帮助我,我将非常感激:)

1 个答案:

答案 0 :(得分:0)

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

在确认防火墙设置后,如果仍然遇到问题,则会更新我的答案。