選択できなくなっていたサーバフレームワーク
Nuxt.jsインストール時にはExpressやKoa.jsなどのサーバサイドフレームワークを選択できていたと思うんだけど、最近のバージョンだとそれができなくなっていたので、フレームワークをKoa.jsに変更する方法を記載する。Expressでも同じかと。
デフォルトでは "connect"
https://ja.nuxtjs.org/api/configuration-servermiddleware
で次のように記載されているように、デフォルトではconnectが適用されるらしい。
Nuxt は内部で connect のインスタンスを作ります。
それはミドルウェアをスタックに登録したり、 外部サーバーを
必要とせず に API などのルートを増やす事を可能にしてくれます。
connect 自体はミドルウェアで、登録されたミドルウェアは
nuxt start と express-template のようなプログラム的な
使用法を持つミドルウェアとして使用されます。
connectのままでもいいんだろうけども、自分的にはKoa.jsの方が使い慣れてるし、今はまだKoa.jsの方が広く受け入れられてると思う。
手順
1. Nuxt.js、Koa.jsインストール
npx create-nuxt-app app
cd app
npm i koa
2. server/index.js 作成
アプリフォルダ直下にserverフォルダを作成し、その配下にindex.jsを作成する。
index.jsはKoa.jsのページにある"Hello World"のサンプルにexport defaultを追加。
あとは煮るなり焼くなり。
index.js
const Koa = require('koa')
const app = new Koa()
app.use((ctx) => {
ctx.body = 'Hello World'
})
export default {
path: '/api',
handler: app.callback()
}
3. nuxt.config.js 編集
serverMiddleware: ['~~/server/'] を追加する。
nuxt.config.js
import colors from 'vuetify/es5/util/colors'
export default {
serverMiddleware: ['~~/server/'],