#typescript #fastify
Вопрос:
Попытка настроить CORS для fastify с помощью плагина fastify в довольно строгой среде машинописи. Документы, показывающие асинхронную конфигурацию https://github.com/fastify/fastify-cors#configuring-cors-asynchronously
import fp from 'fastify-plugin';
import cors from 'fastify-cors';
export default fp(async (fastify) => {
fastify.register(cors, () => (callback: any): void => {
let corsOptions;
if (/localhost/.test(origin)) {
corsOptions = { origin: false };
} else {
corsOptions = { origin: 'www.mywebsite.com' };
}
callback(null, corsOptions);
});
});
Ошибка, которую я получаю, такова
'origin' is not defined.eslintno-undef
Cannot find name 'origin'.ts(2304)
Как мне определить происхождение?
Если я попробую пример без асинхронности из источника документов, он все еще не определен
import fp from 'fastify-plugin';
import cors from 'fastify-cors';
export default fp(async (fastify) => {
fastify.register(cors, {
origin: (origin, callback) => {
// eslint-disable-next-line no-console
console.log(origin); //<======== undefined
if (/localhost/.test(origin)) {
callback(null, true);
} else {
callback(new Error('Not allowed by CORS'), false);
}
},
});
});
Комментарии:
1. Оператор if
if (/localhost/.test(origin)) {
использует исходную переменную, которая не определена. Если вы определите эту переменную, вы не получите ошибку.2. из примера, приведенного в документации, я не понимаю, как определить происхождение