Javascript 如何组织由express/koa后端提供服务的网页包vue.js应用程序? 我很难与一个膝关节炎服务器一起建立一个易于调试的vu.js项目。来自webpack simple generated配置的命令cross env NODE\u env=development webpack dev server--open--hot似乎是一件好事,但是在koa/express中使用这个命令的惯例是什么 我发现的一个解决方案是使用PM2同时启动VUE和后端的WebPosiDV服务器,但我认为这意味着我需要一个复制的初始登陆Vu.js应用程序页面,我现在正在从膝关节炎的路由上服务。另外,想到这两台服务器,我有点困惑,感觉很奇怪

Javascript 如何组织由express/koa后端提供服务的网页包vue.js应用程序? 我很难与一个膝关节炎服务器一起建立一个易于调试的vu.js项目。来自webpack simple generated配置的命令cross env NODE\u env=development webpack dev server--open--hot似乎是一件好事,但是在koa/express中使用这个命令的惯例是什么 我发现的一个解决方案是使用PM2同时启动VUE和后端的WebPosiDV服务器,但我认为这意味着我需要一个复制的初始登陆Vu.js应用程序页面,我现在正在从膝关节炎的路由上服务。另外,想到这两台服务器,我有点困惑,感觉很奇怪,javascript,node.js,express,vue.js,koa,Javascript,Node.js,Express,Vue.js,Koa,所以,我想我一定是做错了!有人能解释一下这样做的一种很好的传统方法吗。如果您试图将webpack dev server与您自己的节点后端一起使用,您需要考虑使用 基本上,您的想法是在一个端口(例如,端口3000)上运行webpack dev server),在另一个端口(例如,端口3001)上运行节点服务器。您只需要告诉webpack将您的服务器端请求转发到您的节点后端 您可以通过在webpack.config.js文件中的devServer设置中添加proxy属性来实现这一点。例如: devS

所以,我想我一定是做错了!有人能解释一下这样做的一种很好的传统方法吗。

如果您试图将webpack dev server与您自己的节点后端一起使用,您需要考虑使用

基本上,您的想法是在一个端口(例如,端口
3000
)上运行
webpack dev server
),在另一个端口(例如,端口
3001
)上运行节点服务器。您只需要告诉webpack将您的服务器端请求转发到您的节点后端

您可以通过在webpack.config.js文件中的
devServer
设置中添加
proxy
属性来实现这一点。例如:

devServer: {
  ...
  proxy: {
    '/api/**': {
      target: 'http://localhost:3001',
      secure: false
    }
  }
}
现在,任何以
/api/
开头的请求都将转到您的节点后端。所以,如果你做了如下事情:

fetch('/api/users').then(...)
此请求将被代理到您的节点服务器。您只需要确保在所有服务器端路由前面加上
/api/

<>自动将前缀的所有路径都加在膝关节炎中,你可以做以下操作:

const Koa = require('koa')
const Router = require('koa-router')

const app = new Koa()
const router = new Router({ prefix: '/api' })

// GET /api/users
router.get('/users', async ctx => {
  ...
})

app.use(router.routes())
app.use(router.allowedMethods())
const express = require('express')

const app = express()
const router = express.Router()

// GET /api/users
router.get('/users', (req, res) => {
  ...
})

app.use('/api', router)
如果您使用的是Express,则可以通过执行以下操作来添加前缀:

const Koa = require('koa')
const Router = require('koa-router')

const app = new Koa()
const router = new Router({ prefix: '/api' })

// GET /api/users
router.get('/users', async ctx => {
  ...
})

app.use(router.routes())
app.use(router.allowedMethods())
const express = require('express')

const app = express()
const router = express.Router()

// GET /api/users
router.get('/users', (req, res) => {
  ...
})

app.use('/api', router)