【问题标题】:How to reach my backend API in a web host?如何在网络主机中访问我的后端 API?
【发布时间】:2019-11-03 00:23:59
【问题描述】:

我需要访问我的后端 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 访问

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

【问题讨论】:

  • 您能否发布您正在发出的请求 JS 代码,也许您没有发现错误。可能是 CORS 错误、不正确的标头...太多无法猜测,没有看到任何示例。
  • 好的,我已经编辑了我的问题以便提供更多信息!
  • 请提供错误消息,我们无法使用“它不起作用”
  • 没有任何错误信息!我的日志没有给我任何错误,问题是电子邮件根本没有到达我的邮箱
  • 好的,我会尝试在这里发布我的反馈

标签: javascript node.js reactjs api


【解决方案1】:

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

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

【讨论】:

  • 4005端口是开放的,不好意思问一下,为什么我的4000端口也要开放?
  • 因为基于localhost:4000/contact,您的前端应用程序似乎正在使用端口 4000
  • 而不是 const baseUrl = 'mywebsiteurl.com/contact' 当您将 mywebsiteurl 替换为您的服务器公共 IP 示例时会发生什么:111.111.111.111/contact
  • 很抱歉没有尽快回复,我发现了问题...关于 Kinghost 的事情是它给了我一个端口,我的应用程序需要在它上面运行。我将端口调整为给定的端口,现在我的前端找到了我的应用程序。虽然它没有发送电子邮件,但它在日志中向我显示了来自后端的错误消息......谢谢! =D
  • 没问题。请将适当的答案标记为解决方案:)
猜你喜欢
  • 1970-01-01
  • 2022-11-10
  • 2021-06-19
  • 1970-01-01
  • 2016-12-30
  • 2021-11-04
  • 2015-09-25
  • 2020-07-17
  • 2020-02-28
相关资源
最近更新 更多