Nuxt 3 服务器中间件

问题描述 投票:0回答:0

好人!

我正在使用 nuxt3 构建一个应用程序,我需要设置一个服务器中间件。这是我第一次使用它,所以我可能做错了。

我现在面临的问题是在生产环境中,它返回 404 错误。

我需要编写代码,在提交表单时创建一个 markdown 文件,并将更改推送到 github。

中间件代码:

import fs from "fs";
import { resolve } from "path";
import path from "path";
import simpleGit from 'simple-git';
const git = simpleGit();

export default async function (app) {
  const req = app.node.req;
  if (req.method === "POST") {
    const {fileName, content} = await readBody(app);
    const __dirname = path.resolve(path.dirname(""));
    const filePath = resolve(__dirname, `./content/products/${fileName}.md`);

    try {
      await fs.promises.writeFile(filePath, content);
      try {
        await git.cwd(resolve(__dirname, './'));
        await git.add('.');
        await git.commit(`Added new file: ${filePath}`);
        await git.push();
        console.log(`Commited and pushed changes to repository`);
        res.status(200);
      } catch (err) {
        console.error(err);
        return res.status(500).send('Error committing and pushing changes to Git repository');
      }
    } catch (err) {
      console.error(err);
      return res.status(500).send("Error generating Markdown file");
    }
  } else {return}
}

我的 Nuxt 配置:

// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({

  ssr:true,
  css: ["~/assets/styles/main.pcss"],
  modules: ["nuxt-icon",   '@nuxt/content'],
  content: {
    documentDriven: true
  },
  serverMiddleware: [
    { path: '/api/generate-markdown', handler: '~/server/middleware/generateMarkdown.js' }
  ],
  postcss: {
    plugins: {
      tailwindcss: {},
      autoprefixer: {},
    },
  },
});

我的设置有什么问题吗? 整个应用程序部署到 netlify。

nuxt.js netlify nuxtjs3
© www.soinside.com 2019 - 2024. All rights reserved.