Express 带有generate的Nuxt服务器中间件

Express 带有generate的Nuxt服务器中间件,express,vue.js,nuxt.js,server-side-rendering,Express,Vue.js,Nuxt.js,Server Side Rendering,我想我误解了nuxt服务器中间件。我有一个api目录,其中只有一个文件,可以启动express并将记录写入mysql数据库。在dev中运行时,一切都按预期工作,但在nuxt生成之后,该端点总是返回404 能否将nuxt generate与服务器上运行的内部API一起使用?我会用axios来达到这个终点,但我怀疑这是否有什么不同 从Nuxt配置: { target: static, serverMiddleware: [{ path: '/api', handler: '~/api/in

我想我误解了nuxt服务器中间件。我有一个api目录,其中只有一个文件,可以启动express并将记录写入mysql数据库。在dev中运行时,一切都按预期工作,但在nuxt生成之后,该端点总是返回404

能否将nuxt generate与服务器上运行的内部API一起使用?我会用axios来达到这个终点,但我怀疑这是否有什么不同

从Nuxt配置:

{
  target: static, 
  serverMiddleware: [{ path: '/api', handler: '~/api/index.js' }]
}

服务器中间件基本上允许您在服务器上运行自己的代码,nuxt以
target:'Server'
模式为您启动。因此,您的方法不会在静态模式下工作,因为没有运行中间件的服务器。您只提供静态文件。在开发模式下,您在本地运行服务器,这就是为什么您的中间件在那里工作良好

要使it在生产中发挥作用,您有两种选择:

  • target:'server'
    模式下运行nuxt,而不是生成静态文件
  • 单独启动express服务器,而不是在nuxt中使用服务器中间件

我希望您现在了解服务器中间件的工作原理,并且能够为您的项目做出正确的决策

谢谢,弗洛里安,我知道了。但是,现在如何在没有dist目录的情况下运行站点?它说在本地主机上侦听,但我希望它从本地vhost运行,比如mynuxtsite.com?@MattKaye我想你的意思是在
target:'server'中运行模式,说“没有dist目录”。我没有设置vhost的经验,但您可以查看。