如何解决尽管我的 mongodb 服务器已连接且正在运行,但我的本地主机仍在继续加载
我正在关注 brad Traversy Nodejs 教程,我的服务器已连接并启动,我的 Mongodb 连接也在运行,但 localhost 继续加载并且没有响应。 我已经检查了我的 mongo 连接 URL,密码和用户名都是正确的。我还允许从所有来源访问网络。 这在以前是完美的,但现在不断加载和加载
我的 db.js
function createData(..
我的 app.js
const mongoose = require("mongoose")
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI,{
useNewUrlParser: true,useFindAndModify: false,useUnifiedTopology: true
})
console.log(`MongoDB connected ${conn.connection.host}`)
} catch (err) {
console.error(err)
process.exit(1)
}
}
module.exports = connectDB
我的 ./routes/index.js
const express = require("express")
const path = require("path")
const dotenv = require('dotenv')
const morgan = require('morgan')
const exphbs = require('express-handlebars')
const passport = require('passport')
const connectDB = require('./config/db')
const routes = require('./routes/index')
const session = require("express-session")
const MongoDBStore = require('connect-mongodb-session')(session);
const mongoose = require('mongoose')
const methodoverride = require('method-override')
//locad config
dotenv.config({ path: './config/config.env' })
connectDB()
//passport config
require('./config/passport')(passport)
const app = express()
const PORT = process.env.PORT || 5000
//body parser
app.use(express.urlencoded({ extended: false }))
app.use(express.json())
//method override
// Method override
app.use(
methodoverride(function (req,res) {
if (req.body && typeof req.body === 'object' && '_method' in req.body) {
// look in urlencoded POST bodies and delete it
let method = req.body._method
delete req.body._method
return method
}
})
)
//logging
if (process.env.NODE_ENV === 'development') {
app.use(morgan('dev'))
}
//handlebars helpers
const { formatDate,truncate,stripTags,select } = require('./helpers/hbs')
//Hnadlebars
app.engine('.hbs',exphbs({ helpers: { formatDate,select },defaultLayout: 'main',extname: '.hbs' }));
app.set('view engine','.hbs');
//sessions
app.use(session({
secret: 'keyboard cat',resave: false,saveUnitialized: false,store: new MongoDBStore({
mongooseConnection: mongoose.connection
})
//cookie: { secure: true }
}))
//set passport middleware
app.use(passport.initialize())
app.use(passport.session())
//set global variable
app.use(function (req,res,next) {
res.locals.user = req.user || null
})
//static folder
app.use('/',express.static(path.join(__dirname,'public')))
//Routes
app.use('/',routes);
app.use('/auth',require('./routes/auth'));
app.use('/stories',require('./routes/stories'));
//listen
app.listen(PORT,console.log(
`server is running in ${process.env.NODE_ENV} mode on port ${PORT}`
))
我的浏览器
解决方法
我发现如果您使用中间件,则必须在最后调用 next 函数,这就是我的页面无法加载的原因
错误发生在 //set global variable middleware
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。