app.post ist keine Funktion express-Knoten
Hatte ich alle meine Routen in server.js aber ich wollte es modular und setzen Sie in einen Ordner namens " Routen. Ich habe eine Datei namens apis.js im Routen-Ordner, aber als ich wusste, dass ich bekommen TypeError: app.post is not a function
server.js:
var express = require('express');
var app = express();
var bodyParser = require('body-parser');
var urlencode = bodyParser.urlencoded({ extended: true});
app.use(express.static('public'));
var apis = require('./routes/apis');
app.use('/', apis);
module.exports = app;
apis.js:
module.exports = function(app){
app.get('/', function(req, res) {
res.send('OK');
});
app.post('/idea', function(req, res) {
...
});
};
Auch, dass module.exports = app
im server.js wichtig ist, wie ich es haben tests ausgeführt, und ich will eine Instanz von app jedes mal.
Was bin ich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Besserer Ansatz :-
server.js
apis.js :-
Müssen Sie gehen in Ihre express-app in Ihre
apis
- Modul, so kann es befestigen Sie die Routen zu Ihrer app. Wenn Sie verwenden möchtenapp.use
um Ihre Routen in einer anderen root-Pfad, können Sie erstellen Sie eine weitere express-router, und schließen Sie Ihre Routen, dannapp.use
router:server.js:
express.Router()
wenn Sie wollen, zu tunapp.use
zu montieren Sie es an einem anderen Ort, aktualisiert meine AntwortEs gibt ein paar verschiedene Methoden für die Verbindung zu Ihrem app, um Ihre Routen, und es scheint mir, wie Sie mischen Sie zusammen, was Ihr Fehler.
Den fix bereits erwähnt...
...funktioniert mit der Art und Weise Sie derzeit Ihre
server.js
- Datei einrichten.Andere Methode, die nicht verlangen, dass Sie ändern Ihre
apis.js
Datei ist zu verlangen, um es inserver.js
mitstatt
Dadurch wird sichergestellt, dass die variable app ist an die Funktion übergeben in
apis.js
Die erste version ist empfohlen, aber ich hoffe, dies erklärt, warum Sie immer verwirrt zwischen den beiden, D. H., da die zweite ist eine Alternative version.
Sehen Unterschiede zwischen express.Router und app.bekommen? für weitere Informationen darüber, warum die router-version wird empfohlen.