微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尽管我的 mongodb 服务器已连接且正在运行,但我的本地主机仍在继续加载

如何解决尽管我的 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}`
))

我的浏览器

browser

解决方法

我发现如果您使用中间件,则必须在最后调用 next 函数,这就是我的页面无法加载的原因

错误发生在 //set global variable middleware

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。