好人!
我正在使用 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。