Как получить ответ с экспресс-сервера на запрос ajax в nuxtjs - PullRequest
0 голосов
/ 21 июня 2019

Я хочу получать данные с узла / экспресс-сервера после отправки ajax-запроса с любой страницы приложения nuxtjs.Обычно для получения и отправки ajax-запроса на PHP-сервере я делаю так: $ _GET ['var'];echo json_encode ('Сервер получил данные');Теперь я хочу использовать серверный экспресс для сохранения данных в mongodb.Когда я пытаюсь отправить запрос, ответ возвращает полный код файла test.js.

Файл index.vue

 methods: {
   onServer() {
     this.$axios.get('/server/test').then(res => {
       console.log('res', res.data)
    })
  }
 }

Файл test.js

 var express = require('express');
 var app = express();

app.get('*', function (req, res) {
   res.send('Hello World!');
});

app.listen(3000, function () {
   console.log('Example app listening on port 3000!');
});

Файловый сервер / index.js

const express = require('express')
const consola = require('consola')
const { Nuxt, Builder } = require('nuxt')
const app = express()


// Import and Set Nuxt.js options
const config = require('../nuxt.config.js')
config.dev = !(process.env.NODE_ENV === 'production')

async function start() {
  // Init Nuxt.js
  const nuxt = new Nuxt(config)

  const { host, port } = nuxt.options.server

  // Build only in dev mode
  if (config.dev) {
    const builder = new Builder(nuxt)
    await builder.build()
  } else {
    await nuxt.ready()
  }

  // Give nuxt middleware to express
  app.use(nuxt.render)

  // Listen the server
  app.listen(port, host)
  consola.ready({
    message: `Server listening on http://${host}:${port}`,
    badge: true
  })
}
start()

Я новый пользовательский узел, пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 22 июня 2019

Ваша основная проблема заключается в том, что вы нацелены на "test.js" в своем URL-адресе axios. Вот почему он отвечает файлом, а не тем, каким должен отвечать маршрут get.

Так что попробуйте с:

this.$axios.get('http://nuxt-profi/server/test').then(...

и посмотри, что ты получишь. Вы также должны иметь возможность получить к нему доступ в браузере, просто перейдите по URL-адресу http://nuxt-profi/server/test, и он должен показать ваш ответ «Hello World».

Однако я не могу быть уверен, как вы все это настроили. Вы используете это как разработку? В этом случае, возможно, вам следует обратиться к нему как http://localhost:3000/server/test, но, возможно, у вас настроены виртуальные хосты, как это. Кроме того, это отдельный бэкэнд API или вы пытаетесь это как промежуточное программное обеспечение сервера?

Если это не поможет, пожалуйста, дайте нам больше информации о настройке вашего проекта, и мы пойдем оттуда.

...