2016-07-06 55 views
1

新手FeathersJS用戶初始化此應用程序後,不能添加路由。我顯然錯過了一些關鍵的理解。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,就像在那裏定義的任何路由一樣。我已經通過指南尋找我的誤解來源。但我有點卡住了。

回答

2

在快遞就像(和另外的羽毛,configure調用)事項的中間件的順序。在生成的應用程序的情況下,.configure(middleware);,因爲它會註冊一個notFound處理程序,這將拋出一個404錯誤一切後,最後運行。之後的任何中間件(除了錯誤處理程序)將永遠不會運行。

+0

爲什麼會是這樣?它清楚地回答了OP的問題? – Daff

相關問題