Thinkjs 3.0 版本
在 src 目录中找到 middleware 文件夹,如果没有就新建一个,然后在此目录中创建一个名字(任意)为 nuxt.js 的文件。
文件内容如下:
const {Nuxt, Builder} = require('nuxt')
const isDev = think.env === 'development';
let config = require(path.join(think.ROOT_PATH, '/nuxt.config.js'))
const nuxt = new Nuxt(config)
// build only in dev mode
if (isDev) {
new Builder(nuxt).build()
}
module.exports = options => {
let err = null
const middleware = async (ctx, next) => {
ctx.status = 200
ctx.req.session = await ctx.session()
await nuxt.render(ctx.req, ctx.res)
const startTime = Date.now();
return next().catch(e => {
err = e
}).then(() => {
// const endTime = Date.now();
if (err) return Promise.reject(err); // 如果后续执行逻辑有错误,则将错误返回
return new Promise((resolve, reject) => {
// console.log(`request exec time: ${endTime - startTime}ms`);
})
}
)
}
return middleware
}
然后在 src/config/middleware.js 中加入以下内容:
{
handle: 'nuxt',
options: {}
}
这样就完成对 Nuxtjs 持支持了。
PS:当生产模式(production)时,一定要将 nuxt.config.js 中的 dev 设置为 true。这样在运行中 nuxt 才能找到已 build 完成的内容。
网友评论