From 71169fd5458183a8a00afb4f5d057c20bfc5ba2a Mon Sep 17 00:00:00 2001
From: Laurie Voss <github@seldo.com>
Date: Fri, 17 Nov 2023 15:29:56 -0800
Subject: [PATCH] fix: generated frontend is sending text/plain so handle that
 instead of JSON

---
 packages/create-llama/templates/types/simple/express/index.ts   | 2 +-
 .../types/simple/express/src/controllers/chat.controller.ts     | 2 +-
 .../create-llama/templates/types/streaming/express/index.ts     | 2 +-
 .../types/streaming/express/src/controllers/chat.controller.ts  | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/packages/create-llama/templates/types/simple/express/index.ts b/packages/create-llama/templates/types/simple/express/index.ts
index 70a43ab58..90e67278d 100644
--- a/packages/create-llama/templates/types/simple/express/index.ts
+++ b/packages/create-llama/templates/types/simple/express/index.ts
@@ -13,7 +13,7 @@ if (isDevelopment) {
   app.use(cors());
 }
 
-app.use(express.json());
+app.use(express.text());
 
 app.get("/", (req: Request, res: Response) => {
   res.send("LlamaIndex Express Server");
diff --git a/packages/create-llama/templates/types/simple/express/src/controllers/chat.controller.ts b/packages/create-llama/templates/types/simple/express/src/controllers/chat.controller.ts
index 476c0c35d..dd4532ffd 100644
--- a/packages/create-llama/templates/types/simple/express/src/controllers/chat.controller.ts
+++ b/packages/create-llama/templates/types/simple/express/src/controllers/chat.controller.ts
@@ -4,7 +4,7 @@ import { createChatEngine } from "./engine";
 
 export const chat = async (req: Request, res: Response, next: NextFunction) => {
   try {
-    const { messages }: { messages: ChatMessage[] } = req.body;
+    const { messages }: { messages: ChatMessage[] } = JSON.parse(req.body);
     const lastMessage = messages.pop();
     if (!messages || !lastMessage || lastMessage.role !== "user") {
       return res.status(400).json({
diff --git a/packages/create-llama/templates/types/streaming/express/index.ts b/packages/create-llama/templates/types/streaming/express/index.ts
index 70a43ab58..90e67278d 100644
--- a/packages/create-llama/templates/types/streaming/express/index.ts
+++ b/packages/create-llama/templates/types/streaming/express/index.ts
@@ -13,7 +13,7 @@ if (isDevelopment) {
   app.use(cors());
 }
 
-app.use(express.json());
+app.use(express.text());
 
 app.get("/", (req: Request, res: Response) => {
   res.send("LlamaIndex Express Server");
diff --git a/packages/create-llama/templates/types/streaming/express/src/controllers/chat.controller.ts b/packages/create-llama/templates/types/streaming/express/src/controllers/chat.controller.ts
index 162b5db74..efa054796 100644
--- a/packages/create-llama/templates/types/streaming/express/src/controllers/chat.controller.ts
+++ b/packages/create-llama/templates/types/streaming/express/src/controllers/chat.controller.ts
@@ -6,7 +6,7 @@ import { LlamaIndexStream } from "./llamaindex-stream";
 
 export const chat = async (req: Request, res: Response, next: NextFunction) => {
   try {
-    const { messages }: { messages: ChatMessage[] } = req.body;
+    const { messages }: { messages: ChatMessage[] } = JSON.parse(req.body);
     const lastMessage = messages.pop();
     if (!messages || !lastMessage || lastMessage.role !== "user") {
       return res.status(400).json({
-- 
GitLab