У меня была проблема с моим приложением nuxt / express.js: если вы попытаетесь ввести в браузере yourURL/getitems
ваше приложение nuxt попытается перенаправить вас на эту страницу, а не просто показывать вам данные.
Первое, что нужно сделать, как сказать, вам нужно определить, какой URL должен обрабатывать ваш бэкэнд. Вы переходите к своему nuxt.config.js
и добавляете следующую строку кода:
serverMiddleware: ["~/api/index.js"],
Это означает, что у вас есть папка с именем api
, и в этой папке у вас есть файл index.js
, и это ваш express.js. / koa app.
Теперь в вашем index.js
, где находится ваше приложение express.js / koa, вам нужно добавить в конце строки этот код:
module.exports = {
path: "/api",
handler: app
};
Есливсе работает нормально, ваш URL должен теперь иметь префикс api
, и вы сможете получить данные с помощью localhost:PORT/api/getitems
Теперь nuxt не будет пытаться направить вас к вашему url/api
, потому что теперь он знает, что этоэто ваш бэкэнд
Если бы вы могли предоставить мне структуру папок вашего приложения nuxt, я мог бы вам помочь.
Вот дополнительная информация о serverMiddleware
https://nuxtjs.org/api/configuration-servermiddleware
РЕДАКТИРОВАТЬ:
где-то у вас есть папка, скажем, по имени server
или api
в этой папке должен быть файл index.js
и вашмаршруты, модель, контроллеры и т. д.
Допустим, у вас есть папка с именем server
и на этом сервере у вас есть index.js
это должно выглядеть примерно так
const Koa = require('koa');
const app = new Koa();
Import routes from "./routes.js"
app.use(routes)
//here you define now your backend path
module.exports = {
//you can use any path you want
path: "/backend",
handler: app
};
app.listen(3000);
Теперь вам нужно перейти к файлу nuxt.config.js
и указать на него index.js
Файл
serverMiddleware: ["~/server/index.js"]
Теперь вы можете получить доступ к своемуdata with axios:
axios.get("/backend/getitems").then(data => { console.log(data) })
Вам нужно будет добавить backend
к вашему URL-адресу axios, потому что это путь, который вы определили для обработки вашим сервером.