从nuxtjs应用的任何页面发送ajax查询后,我想从节点/ express服务器获取数据。 通常,对于在PHP服务器中获取和发送ajax查询,我喜欢这样的$ _GET ['var'];回声json_encode('服务器获取数据'); 现在,我想使用节点服务器Express将数据保存在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()
我是一个新的用户节点,请帮助我!
答案 0 :(得分:0)
您的主要问题是,您要在axios网址中定位“ test.js”。这就是为什么它使用文件而不是get路由响应的原因。
所以尝试:
this.$axios.get('http://nuxt-profi/server/test').then(...
看看你得到什么。您还应该能够在浏览器中访问它,只需转到URL http://nuxt-profi/server/test
,它就会显示“ Hello World”响应。
但是我不确定您如何设置所有这一切。您是否正在将其作为开发运行?在这种情况下,您可能应该以{{1}}的身份访问它,但是也许您已经配置了虚拟主机。另外,这是一个单独的后端api还是您尝试将其用作服务器中间件?
如果这没有帮助,请向我们提供有关您的项目设置的更多信息,我们将从那里开始。