无法在 Express 应用程序中的 app.js 之外登录

问题描述 投票:0回答:2

我正在使用 Node.js 开发 Express 应用程序,并且遇到在 app.js 文件外部生成日志的问题。这是我的设置:

在我的 app.js 文件中,我能够按预期生成日志。例如,我有一个 /login 路由,我可以使用 console.log 在控制台中显示消息:

//app.js
const express = require('express');
const db = require('./config/db');
const session = require('express-session');
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const bcrypt = require('bcrypt');
const userRoutes = require('./routes/userRoutes');
const traningRoutes = require('./routes/traningRoutes');
const authRoutes = require('./routes/authRoutes');
const flash = require('connect-flash');


const app = express();

// Middleware
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(express.static('public'));

app.set('view engine', 'ejs');
app.use('/public', express.static(__dirname + '/public'));

app.get('/login', (req, res) => {
  console.log("Here it works");
  res.render('login'); 
});

但是,在我的

dashboard.js
文件(用于处理某些路由的控制器)中,
checkLogin
函数不会生成日志,即使我添加了日志记录语句:

// controllers/dashboard.js
const db = require('../config/db');
const bcrypt = require('bcrypt');


exports.checkLogin = () =>{
  console.log("ici ça fonctionne pas rien n'est log"); // ça ça fonctionne pas 
}
//authRoutes.js
const express = require('express');
const passport = require('passport');
const dashboardController = require('../controllers/dashboardController');

const router = express.Router();

router.get('/login',dashboardController.checkLogin);

我正在使用控制器-路由-视图架构。任何人都可以深入了解为什么我无法在 app.js 文件之外生成日志吗?我该如何解决这个问题?

任何帮助将不胜感激。谢谢!

我希望能够注销我的 app.js

node.js express routes controller ejs
2个回答
0
投票

我看不到你可以在哪里调用,server.js 中的 authRoutes 可能是第一个问题,其次当你点击 /login API 时会调用 checkLogin,希望你正在这样做。


0
投票

我发现我的问题来自于我想用 /api 创建组:

`app.use('/api', traningRoutes);
app.use('/api', authRoutes);
app.use('/api', userRoutes);`

它阻止了所有路由,所以我只需删除 api 并且它可以工作

app.use('/', traningRoutes);
© www.soinside.com 2019 - 2024. All rights reserved.