/ / Expresný router vytvára novú nechcelú reláciu - node.js, express, passport.js, passport-local

Express router vytvoriť novú reláciu, ktorú nechce - node.js, express, passport.js, passport-local

Robím reaktívny projekt využívajúci expresné a pasové-miestne pre autentifikačnú časť na základe tohto tutoriálu: https://scotch.io/tutorials/easy-node-authentication-setup-and-local

Overenie funguje veľmi dobre, pridal somexpresný router na definovanie mojich ciest pre moje API, ale keď volám napríklad „/ api / myroute“, router Express vytvorí ďalšiu reláciu a stratím užívateľa, takže moja funkcia isLoggedIn blokuje volanie mojich radičov, pretože v tejto novej relácii nie je žiadny používateľ. Moja otázka znie: Prečo router znovu vytvára reláciu? Čo je nesprávne v mojej konfigurácii? Tu je môj kód:

//server.js
var path = require("path");
var webpack = require("webpack");
var webpackDevMiddleware = require("webpack-dev-middleware");
var webpackHotMiddleware = require("webpack-hot-middleware");
var config = require("./webpack.config");

var express  = require("express");
var app      = express();
var port     = process.env.PORT || 8080;
var mongoose = require("mongoose");
var passport = require("passport");
var flash    = require("connect-flash");

var morgan       = require("morgan");
var cookieParser = require("cookie-parser");
var bodyParser   = require("body-parser");
var session      = require("express-session");

var configDB = require("./config/database.js");

var router = express.Router();

// configuration ===============================================================
mongoose.connect(configDB.url); // connect to our database

require("./config/passport")(passport); // pass passport for configuration

// set up our express application
app.use(morgan("dev")); // log every request to the console
app.use(cookieParser()); // read cookies (needed for auth)
app.use(bodyParser()); // get information from html forms

app.set("view engine", "ejs"); // set up ejs for templating

// required for passport
app.use(session({ secret: "secret" })); // session secret
app.use(passport.initialize());
app.use(passport.session()); // persistent login sessions
app.use(flash()); // use connect-flash for flash messages stored in session


var compiler = webpack(config);
app.use(webpackDevMiddleware(compiler, { noInfo: true, publicPath: config.output.publicPath }));
app.use(webpackHotMiddleware(compiler));
app.use("/plugins/bootstrap", express.static(path.join(__dirname, "./plugins/bootstrap")));
app.use("/plugins/jquery", express.static(path.join(__dirname, "./plugins/jquery")));
app.use("/plugins/font-awesome", express.static(path.join(__dirname, "./plugins/font-awesome")));


// all of our routes will be prefixed with /api
app.use("/api", router);

// routes ======================================================================
require("./api/routes.js")(app, passport,router); // load our routes and pass in our app and fully configured passport


// launch ======================================================================
app.listen(port, function(error) {
if (error) {
console.error(error)
} else {
console.info("==>