我正在使用 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
我看不到你可以在哪里调用,server.js 中的 authRoutes 可能是第一个问题,其次当你点击 /login API 时会调用 checkLogin,希望你正在这样做。
我发现我的问题来自于我想用 /api 创建组:
`app.use('/api', traningRoutes);
app.use('/api', authRoutes);
app.use('/api', userRoutes);`
它阻止了所有路由,所以我只需删除 api 并且它可以工作
app.use('/', traningRoutes);