我正在使用 inversify、inversify-binding-decorators 和 inversify-express-utlis,并且在使用 express 中间件时遇到了问题。
我以这种方式调用我的中间件:
let server = new InversifyExpressServer(container);
...
server.setConfig((app) => {
app.use(validateSession);
});
...
Run Code Online (Sandbox Code Playgroud)
这是我的 ioc 注册课程。请注意,这里我在请求范围内手动注册了 SessionContext
import DatabaseApi from './../repositories/databaseApi';
import { Container, inject } from "inversify";
import TYPES from "./types";
import { autoProvide, makeProvideDecorator, makeFluentProvideDecorator } from "inversify-binding-decorators";
import { SessionContext } from './../services/session/sessionContext';
let container = new Container();
container.bind<SessionContext>(TYPES.SessionContext).to(SessionContext).inRequestScope();
let provide = makeProvideDecorator(container);
let fluentProvider = makeFluentProvideDecorator(container);
let provideNamed = (identifier: any, name: any) => {
return fluentProvider(identifier)
.whenTargetNamed(name)
.done();
}; …Run Code Online (Sandbox Code Playgroud)