FeathersJS:初始化应用程序后无法添加路由
FeathersJS: Cannot add routes after initializing app
这里是新手 FeathersJS 用户。我显然缺少一些关键的理解。
我正在尝试使用 MySQL 模型创建一个简单的 REST API。我正在尝试遵循 this issue thread. Routes I define in my initial app.use()
block work, but not those defined after it. Partial code here, rest in this gist
中文档引用的代码结构
const app = feathers();
app.configure(configuration(path.join(__dirname, '..')));
app.use(compress())
.options('*', cors())
.use(cors())
.use(favicon(path.join(app.get('public'), 'favicon.ico')))
/* THIS ROUTE WORKS FINE */
.use('/', serveStatic(app.get('public')))
.use(bodyParser.json())
.use(bodyParser.urlencoded({
extended: true
}))
.configure(hooks())
.configure(rest())
.configure(socketio())
.configure(models)
.configure(services)
.configure(middleware);
const appModels = app.get('models');
const beerOptions = {
Model: appModels.beer,
paginate: {
default: 15,
max: 50
}
};
/* NEITHER OF THESE ROUTES WORK */
app.use('/beer', service(beerOptions));
// IF YOU DELETE THE DEFINITION ABOVE AND UNCOMMENT
// THIS NEXT LINE, THE ROOT URL GIVES A 404
// app.use('/', serveStatic(app.get('public')));
我在 npm start
运行该应用程序时没有收到任何错误。但是,我的 /beer
路由和那里定义的任何路由一样只有 404s。我一直在通过指南寻找我误解的根源。但我有点卡住了。
就像在 Express 中一样,中间件的顺序(另外对于 Feathers,configure
调用)很重要。对于生成的应用程序,.configure(middleware);
有 到 运行 最后,因为它注册了一个 notFound
处理程序,它将抛出 404 错误.之后的任何中间件(错误处理程序除外)将永远不会 运行.
这里是新手 FeathersJS 用户。我显然缺少一些关键的理解。
我正在尝试使用 MySQL 模型创建一个简单的 REST API。我正在尝试遵循 this issue thread. Routes I define in my initial app.use()
block work, but not those defined after it. Partial code here, rest in this gist
const app = feathers();
app.configure(configuration(path.join(__dirname, '..')));
app.use(compress())
.options('*', cors())
.use(cors())
.use(favicon(path.join(app.get('public'), 'favicon.ico')))
/* THIS ROUTE WORKS FINE */
.use('/', serveStatic(app.get('public')))
.use(bodyParser.json())
.use(bodyParser.urlencoded({
extended: true
}))
.configure(hooks())
.configure(rest())
.configure(socketio())
.configure(models)
.configure(services)
.configure(middleware);
const appModels = app.get('models');
const beerOptions = {
Model: appModels.beer,
paginate: {
default: 15,
max: 50
}
};
/* NEITHER OF THESE ROUTES WORK */
app.use('/beer', service(beerOptions));
// IF YOU DELETE THE DEFINITION ABOVE AND UNCOMMENT
// THIS NEXT LINE, THE ROOT URL GIVES A 404
// app.use('/', serveStatic(app.get('public')));
我在 npm start
运行该应用程序时没有收到任何错误。但是,我的 /beer
路由和那里定义的任何路由一样只有 404s。我一直在通过指南寻找我误解的根源。但我有点卡住了。
就像在 Express 中一样,中间件的顺序(另外对于 Feathers,configure
调用)很重要。对于生成的应用程序,.configure(middleware);
有 到 运行 最后,因为它注册了一个 notFound
处理程序,它将抛出 404 错误.之后的任何中间件(错误处理程序除外)将永远不会 运行.