我不想从301.json重定向,而是要向我的api请求,该api返回我的json。
我正在使用@nuxtjs/axios
模块。
const redirects = require('../301.json');
export default function (req, res, next) {
const redirect = redirects.find(r => r.from === req.url);
if (redirect) {
console.log('redirect: ${redirect.from} => ${redirect.to}');
res.writeHead(301, { Location: redirect.to });
res.end();
} else {
next();
}
}
答案 0 :(得分:3)
要以@Dominooch的答案为基础,如果只想返回JSON,则可以使用.json()帮助器。它会自动将内容类型设置为application / json,并将您传递给它的对象字符串化。
// some-api-endpoint.js
import axios from 'axios'
export default {
path: '/endpoint'
async handler (req, res) {
const { data } = await axios.get('some-request')
res.json(data)
}
}
然后在您的nuxt.config.js中:
// nuxt.config.js
module.exports = {
// some other exported properties ...
serverMiddleware: [
{ path: '/endpoint', handler: '~/path/to/some-api-endpoint.js' },
]
}
答案 1 :(得分:0)
这是我所做的,并且似乎可以正常工作:
//uri-path.js
import axios from 'axios'
export default {
path: '/uri/path',
async handler (req, res) {
const { data } = await axios.get('http://127.0.0.1:8000/uri/path')
res.setHeader('Content-Type', 'text/html')
res.end(data)
}
}