是否可以将数据从Vuex商店传递到Nuxt.js中的serverMiddleware?
async SET_DATA({commit}, payload) {
await this.$axios.$post('/api', { data: payload.data})
commit('SET_DATA', payload.data)
}
在nuxt.config中
serverMiddleware: [
{ path: '/api', handler: '~/api/index' }
]
然后如何访问api / index.js中的数据?
export default function (req, res, next) {
// Get data from Store here
next()
}
答案 0 :(得分:0)
答案 1 :(得分:0)
我的问题的解决方案是使用bodyParser找到的。使用app.use(bodyParser.json())。
答案 2 :(得分:0)
我发现的唯一方法是;
readFile和writeFile函数。
在nuxt.config中
modules: ['~/api/api.js'],
在api / api.js中
我使用这种方法,是因为在尝试构建应用程序时,servermiddleware会导致错误。
module.exports = function (moduleOptions) {
//Add middleware only with `nuxt dev` or `nuxt start`
var fs = require('fs');
// Save file from env or vuex anything comes with this
fs.writeFile('envTransfer.txt', JSON.stringify(this.options.env), function (err) {
if (err) throw err;
console.log('Saved!');
});
// Then call addServermiddleware
//Add middleware only with `nuxt dev` or `nuxt start`
if (this.options.dev || this.options._start) {
this.addServerMiddleware('~/api/index.js')
}
}
在api / index.js部分(node&express)中
const fs = require('fs');
const express = require('express');
const app = express()
....
let content="";
fs.readFile('envTransfer.txt', function(err, data) {
if (err) throw err;
content = data;
var obj = JSON.parse(content);
// do it what ever you want
app.get('/', (req, res, next) => {
// res.send('API root')
})
// export the server middleware
module.exports = {
path: '/api',
handler: app
}
});