以下のコードでVue app aliases are not allowed in server routes.のエラーが出る
Vueのアプリでnuxt.config.jsonで設定したsecretを読み取ろうとしたところ、エラーになりました。
app/server/api/hoge.ts
import { useRuntimeConfig } from '#app';
export default defineEventHandler((event) => {
console.log(runtimeConfig.public.secret);
return {
hello: 'hello'
}
})
修正方法
useRunTimeConfigのインポートの仕方がサーバーサイドだと#importsになるようです。
import { useRuntimeConfig } from '#imports'; // ここを修正
export default defineEventHandler((event) => {
console.log(runtimeConfig.public.secret);
return {
hello: 'hello'
}
})
正常にログが出力されました。
Nuxt のサーバールートでは #app ではなく #imports を使う必要がありました。