相关疑难解决方法(0)

使用默认 Next.js 开发服务器代理到后端

之前,当我使用 create-react-app 制作应用程序时,我会有一个setupProxy.js文件来路由与此类似的 API 请求

const proxy = require('http-proxy-middleware');
module.exports = function(app) {
    app.use('/api',
        proxy({
            target: 'http://localhost:8000',
            changeOrigin: true,
        })
    );
};
Run Code Online (Sandbox Code Playgroud)

但这似乎不适用于 next.js。当我做同样的事情时,我会遇到各种错误。

谷歌搜索解决方案,很多人说使用某种自定义服务器。但是我将如何使用默认的 nextjs 开发服务器完成像上面这样的代理?(相当于我的 package.json 中的npm run devwhendevnext dev.

javascript node.js reactjs next.js

11
推荐指数
3
解决办法
2万
查看次数

Docker-compose 使 2 个微服务(前端 + 后端)通过 http 请求相互通信

我有 2 个微服务:带有 next.js 的前端和带有 node.js 的后端,我从前端通过 REST-API 获取数据。

我现在遇到的问题是,我的 2 个服务似乎没有直接相互通信,问题是,当我在开始时使用 getinitialProps() 方法和 fetch-API 获取数据时,它可以工作。我的服务器端前端通过其服务名称找到后端。但是,当我从客户端向后端发出 http 请求时(例如,通过浏览器表单输入)。它再也找不到后端了吗?这是为什么?

这是我的 docker-compose.yml:

version: '3'

services:
  dcbackend:
    container_name: dcbackend
    build:
      context: ./dcbackend
      dockerfile: Dockerfile
    image: dcbackend
    hostname: dcbackend
    ports:
      - '7766:7766'

  dcfrontend:
    container_name: dcfrontend
    build:
      context: ./dcfrontend
      dockerfile: Dockerfile
    image: dcfrontend
    volumes:
      - /app/node_modules
      - ./dcfrontend:/app      
    hostname: dcfrontend
    ports:
      - '6677:6677'
Run Code Online (Sandbox Code Playgroud)

这是我将数据发送到后端的浏览器客户端方法之一(通过浏览器,我的 url 是 http:dcbackend ......所以通常它应该找到后端所在的另一个 docker 环境,但它没有...... .

    if (environment == 'dev') {
  url_link = `http://localhost:${port}`;  
} else {
  url_link = `http://dcbackend:${port}`; …
Run Code Online (Sandbox Code Playgroud)

httprequest node.js docker microservices next.js

4
推荐指数
1
解决办法
971
查看次数