【发布时间】:2020-05-05 17:19:11
【问题描述】:
嗨,在我的 express 项目中,我有我的索引文件,我需要不同的文件来启动我的应用程序。这些需要一个数据库连接文件、一个用于使用 winston 记录内容的文件以及一个用于配置路由的文件。
我使用 express 中的require() 语句来调用这些文件,并且当我运行应用程序(使用 nodemon)时,我希望将一些消息记录到终端以验证文件已被调用,但是没有消息出现.
这是我的代码: index.js:
const express = require('express')
const app = express()
require('./startup/logging') ()
require('./startup/db') ()
require('./startup/routes') (app)
const port = process.env.PORT || 3000
app.listen(port, () => winston.info(`Listening on port: ${port}`))
db.js:
const mongoose = require('mongoose')
const winston = require('winston')
module.exports = function() {
mongoose.connect('mongodb://localhost/dwg', {useNewUrlParser: true, useUnifiedTopology: true})
.then(() => winston.info('Connected to MongoDB...'))
.catch(err => console.error("Error"))
}
logging.js:
const winston = require('winston');
module.exports = function() {
winston.handleExceptions(
new winston.transports.File({ filename: 'uncaughtExceptions.log' }));
process.on('unhandledRejection', (ex) => {
throw ex;
});
winston.add(winston.transports.File, { filename: 'logfile.log' });
}
routes.js:
const express = require('express');
module.exports = function(app) {
app.use(express.json())
}
运行应用程序时未创建数据库。我可以通过查看 mongodb 指南针来确认这一点。由app.listen() 打印的消息也不会打印到控制台。有人知道这个问题吗?谢谢。
【问题讨论】: