Простой фреймворк для сервера.
Версия v3.x предназначена только для модуля ES.
npm i @epiijs/server --save
(root)
├─ src
│ ├─ actions
│ │ ├─ $params
│ │ │ └─ index.ts
│ │ └─ index.ts
│ └─ services
│ └─ service.ts
└─ start.ts
Будет маршрутизировать запросы следующим образом:
=> /$params
=> /
import { startServer } from '@epiijs/server';
startServer({
name: 'your-server',
port: 8080,
path: {
root: __dirname // или getDirNameByImportMeta(import.meta)
}
});
Предоставьте обработчики запросов в /actions
.
import {
ActionResult,
IncomingMessage
} from '@epiijs/server';
export default async function (props: IncomingMessage): Promise<ActionResult> {
const { method, url } = props;
// простой ответ
return 'hello world';
// пользовательский ответ
return {
status: 400,
headers: { 'content-type': 'application/json' },
content: JSON.stringify({})
};
// или вы можете выдать ошибку
throw new Error('fatal error');
}
Используйте useHandler
, чтобы отфильтровать запрос и удалить после вызова action.
import {
ActionResult,
Context,
IncomingMessage
} from '@epiijs/server';
export default async function (props: IncomingMessage, context: Context): Promise<ActionResult> {
const { method, url } = props;
await context.useHandler(dispose => {
const start = Date.now();
if (method !== 'GET') {
return { status: 405, content: 'method not allowed' };
}
dispose(() => {
console.log('elapsed', Date.now() - start);
});
});
return 'hello world';
}
Предоставьте фабрику услуг в /services
.
export interface IUserService {}
export default function createUserService() {
const userService: IUserService = {};
return userService;
}
Используйте useService
в action, чтобы получить экземпляр службы.
import {
ActionResult,
Context,
IncomingMessage
} from '@epiijs/server';
export default async function (props: IncomingMessage, context: Context): Promise<ActionResult> {
const { method, url } = props;
const userService = await context.useService('UserService');
const users = await userService.findUsers();
return users;
}
WIP
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )