Я изучаю nodejs/expressjs и shoehorning его в шаблон Spring MVC, потому что я полагаю, что могу поддерживать связность моего файла. Но это не совсем работает так, как я бы ожидал ...expressjs - не удалось обработать запрос
server.js
const express = require('express');
const bodyParser= require('body-parser');
const MongoClient = require('mongodb').MongoClient;
const app = express();
var PeopleController = require('./controller/PeopleController.js')
var db;
app.all('/*', function(req, res, next) {
var path = req.url;
var controller;
switch (true) {
case /\/people.*/g.test(path):
controller = new PeopleController();
console.log("people");
controller.process(req, res, next);
break;
case /\/foo.*/g.test(path):
console.log("foo");
break
default:
console.log("nada");
break;
}
});
PeopleController.js
const express = require('express');
const bodyParser= require('body-parser');
const MongoClient = require('mongodb').MongoClient;
const app = express();
var PeopleController = function PeopleController() {}
PeopleController.prototype.process = function (req, res, next) {
var baseURL = '/people';
console.log('path is ' + req.path);
app.use(bodyParser.urlencoded({extended: true}));
app.set('view engine', 'ejs');
app.get(baseURL, (req, res) => {
console.log('people get');
});
app.post(baseURL, (req, res) => {
console.log('people post');
});
};
module.exports = PeopleController;
Тогда, когда я делаю GET на/человек/я получаю следующая консоль из ...
people
path is /people/
Я ожидаю, что app.get бежать и получить следующий вывод:
people
path is /people/
people get
Из того, что я вижу, вы создаете новый экземпляр 'app', но он не прослушивает ни один из портов , 'app.get' будет соответствовать запросу к порту, который он прослушивает. – char