Newbie FeathersJS 사용자는 여기에 있습니다. 나는 분명히 몇 가지 중요한 이해를 놓치고 있습니다.
MySQL 모델을 사용하여 간단한 REST API를 만들려고합니다. 이 문제 스레드 의 문서에서 참조하는 코드 구조를 따르려고합니다 . 초기 app.use()
블록 작업에서 정의했지만 이후에 정의 된 경로가 아닙니다. 여기에 부분 코드, 이 요점에 휴식
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
경로는 거기에 정의 된 모든 경로와 마찬가지로 404입니다. 나는 오해의 근원을 찾기 위해 가이드를 통해 왔습니다. 하지만 좀 갇혀 있어요.
Express에서와 마찬가지로 미들웨어의 순서 (추가적으로 Feathers, configure
호출)가 중요합니다. 생성 된 응용 프로그램의 경우, .configure(middleware);
이 그것이 등록하기 때문에 다른 모든 것들 후 마지막으로 실행하는 notFound
404 오류가 발생합니다 핸들러를. 그 이후의 미들웨어 (오류 처리기 제외)는 실행되지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다