Hier sind meine Route Definitionen in Express.js:Wie verhindere ich, dass eine generische Route Header in einer bestimmten Route in Express.js einstellt?
// Building specific routes defined by a route file
routes.use(this.initialize.bind(this));
routes.use(this.isAuthenticated.bind(this));
routes.use(this.isAuthorized.bind(this));
if (Route.METHOD == 'POST') {
routes.use(route.post.bind(route));
} else {
routes.use(route.get.bind(route));
}
routes.use(this.finalize.bind(this));
router.use('/webstore/' + Route.RESOURCE + (parameters.length != 0 ? '/' : '') + parameters.join('/'), routes);
//router.use('/webstore/session', routes);
// Building generic routes
console.log('Creating GET route: ' +
'/:connectionName(webstore|localdatastore)/:objectName');
router.get('/:connectionName(webstore|localdatastore)/:objectName',
this.initialize.bind(this), this.isAuthenticated.bind(this), this.isAuthorized.bind(this), this.get.bind(this), this.finalize.bind(this));
console.log('Creating POST route: ' +
'/:connectionName(webstore|localdatastore)/:objectName');
router.post('/:connectionName(webstore|localdatastore)/:objectName',
this.initialize.bind(this), this.isAuthenticated.bind(this), this.isAuthorized.bind(this), this.get.bind(this), this.finalize.bind(this));
Wenn ich versuche, generische Routen zuzugreifen, wie /webstore/user
in den beiden Linien oben definiert, mein Code funktioniert gut, aber wenn ich versuche, eine zu verwenden, bestimmte Route oben von einer Route-Datei definiert, wie /webstore/session
, erhalte ich diesen Fehler:
Error: Can't set headers after they are sent.
at ServerResponse.setHeader (_http_outgoing.js:371:11)
at ServerResponse.header (./node_modules/express/lib/response.js:767:10)
at ServerResponse.contentType (./node_modules/express/lib/response.js:595:15)
at Server.finalize (./dist/server.js:1156:17)
at Layer.handle [as handle_request] (./node_modules/express/lib/router/layer.js:95:5)
...
würde ich meine API Wohnung bleiben will, und muß nicht einen Aliasnamen hinzufügen, diesen Fehler zu entfernen. Wie verhindere ich, dass Express Header setzt, weil die generischen und definierten Routen kollidieren?
Entschuldigung für die verspätete Antwort. Sie haben mich auf die richtige Spur gebracht und ich habe das Problem bald danach gelöst, aber ich muss vergessen haben, es nach dem neuen Jahr zu aktualisieren. – NobleUplift