FeathersJS:初始化应用

时间:2016-07-06 15:51:29

标签: feathersjs

Newbie FeathersJS用户在这里。我显然错过了一些理解。

我尝试使用MySQL模型创建一个简单的REST API。我试图遵循this issue thread中文档引用的代码结构。我在我的初始app.use()块中定义的路由,但不是在它之后定义的路径。这里有部分代码,休息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,就像在那里定义的任何路线一样。我已经通过指南寻找误解的根源。但我有点卡住了。

1 个答案:

答案 0 :(得分:2)

就像在Express中,中间件(以及Feathers,configure调用)的顺序很重要。对于生成的应用程序,.configure(middleware); 具有以在其他所有内容之后运行,因为它注册了notFound处理程序,这将导致404错误。之后的任何中间件(错误处理程序除外)都不会运行。