【问题标题】:Network Error when connecting React frontend to将 React 前端连接到网络时出现网络错误
【发布时间】:2020-03-09 13:58:25
【问题描述】:

应用程序使用 next.js 连接到 express,然后连接到 AWS MySql。

我正在尝试最初加载一些我存储在我的数据库中的产品。但是,我收到以下网络错误:-

TypeError:尝试获取资源时出现 NetworkError。

我使用外部 api 对前端代码进行了故障排除,并且效果很好,所以它与 express 中间件有关。

请参阅下面的代码摘录...

index.js

import '../scss/style.scss';
import NavBar from '../components/Navbar/Navbar';
import fetch from 'isomorphic-unfetch';

const Index = (props) => (
    <div>

    <NavBar />
    <h1>See our products below yeah</h1>
    </div>
)

Index.getInitialProps = async function() {
    const res = await fetch('localhost:3000/');
    const data = await res.json();
    return {
        posts: data
    }
}

export default Index;

server.js

const express = require('express');
const next = require('next');

const port = process.env.PORT || 3000;
const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();

const db = require('../lib/db')
const escape = require('sql-template-strings')

app.prepare().then(() => {
  const server = express()


  server.get('/', (req, res, next) => {
      let sql = 'SELECT * FROM products'
      db.query(sql, [], (err, rows) => {
          if (err) {
              throw err;
          } else {
              return res.json({
                  data: rows
              })
          }
      })
  })
...

db.js

const mysql = require('serverless-mysql')

const db = mysql({
  config: {
    host: "XXX",
    database: "XXX",
    user: "XXX",
    password: "XXX"
  }
})

exports.query = async query => {
  try {
    const results = await db.query(query)
    await db.end()
    return results
  } catch (error) {
    return { error }
  }
}

【问题讨论】:

    标签: javascript mysql reactjs express next.js


    【解决方案1】:

    每当你有来自不同服务器的 api 请求时,你都必须在前端和后端设置 CORS

    链接:https://expressjs.com/en/resources/middleware/cors.html

    【讨论】:

    • 我在服务器声明下方添加了 server.use(cors) ,因此在后端添加了,但我仍然遇到同样的错误。我确信我没有正确声明“获取”或在 express 中正确声明我的路线。 @Aravind
    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2020-07-30
    • 2021-10-03
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    相关资源
    最近更新 更多