Javascript 路由器未在express应用程序中启动.find或.findByID。也使用nextjs

Javascript 路由器未在express应用程序中启动.find或.findByID。也使用nextjs,javascript,node.js,reactjs,express,next.js,Javascript,Node.js,Reactjs,Express,Next.js,我正在使用NextJS/MERN堆栈。我的NextJS正在使用我的server.js文件,同时为我的API导入路由。当从邮递员或浏览器触发API调用时,这些路由显示为活动,因此它们似乎正在工作。然而,这就是活动停止的地方。据我所知,它没有通过Model.find()函数。我不确定这是否与Next js和server.js中的prepare方法有关,或者这是否与bodyparser问题有关 这是我的server.js const express = require("express"); cons

我正在使用NextJS/MERN堆栈。我的NextJS正在使用我的server.js文件,同时为我的API导入路由。当从邮递员或浏览器触发API调用时,这些路由显示为活动,因此它们似乎正在工作。然而,这就是活动停止的地方。据我所知,它没有通过Model.find()函数。我不确定这是否与Next js和server.js中的prepare方法有关,或者这是否与bodyparser问题有关

这是我的server.js

const express = require("express");
const urlObject = require('./baseURL')
const passport = require("./nextexpress/config/passport-setup");
const passportSetup = require("./nextexpress/config/passport-setup");
const session = require("express-session");
const authRoutes = require("./nextexpress/routes/auth-routes");
const KBRoutes = require("./nextexpress/routes/kb-routes");
const userRoutes = require('./nextexpress/routes/user-routes')
const pollRoutes = require('./nextexpress/routes/poll-routes')
const mongoose = require("mongoose");
const cookieParser = require("cookie-parser"); // parse cookie header
const next = require('next')
const dev = process.env.NODE_ENV !== 'production'
const nextapp = next({ dev })
const handle = nextapp.getRequestHandler()

const bodyParser = require('body-parser');
// mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost:27017/kb', { useNewUrlParser: true });
mongoose.connect('mongodb://localhost:27017/kb')
console.log(process.env.MONGODB_URI)
const connection = mongoose.connection;
const baseURL = urlObject.baseURL

const PORT = process.env.PORT || 3000
connection.once('open', function () {
    console.log("MongoDB database connection established successfully");
})

nextapp.prepare().then(() => {
    const app = express();

    console.log(process.env.PORT, '----port here ----')
    app.use(cookieParser());
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use("/api/auth", authRoutes);
    app.use("/api/kb", KBRoutes);
    app.use('/api/user', userRoutes)
    app.use('/api/poll', pollRoutes)
    app.get('/posts/:id', (req, res) => {

        return nextapp.render(req, res, '/article', { id: req.params.id })
    })
    app.get('/redirect/:id', (req, res) => {

        return nextapp.render(req, res, '/redirect')
    })

    app.all('*', (req, res) => {
        return handle(req, res)
    })

    app.listen(PORT, err => {
        if (err) throw err
        console.log(`> Ready on http://localhost:${PORT}`)
    })
})



// connect react to nodejs express server
及有关路线:

KBRoutes.get('/', (req, res) => {
    console.log(KB.Model)
    KB.find({}, (err, photos) => {
        res.json(kbs)
    })
})

我能到达每一条路线。在此之前,当我将NextJS React部分拆分为一个单独的域,从而拆分为单独的server.js文件时。一旦我介绍了NextJs,这个问题就出现了。任何帮助都将不胜感激

看起来相关路由正在尝试返回json(kbs),但kbs似乎没有定义。返回find查询的结果对我来说更有意义,包括一个很好的错误捕捉器和一些良好实践的状态。捕捉错误应该会告诉您出了什么问题,我希望您的控制台中会出现错误,这将帮助我们找到更多的答案

KB.find({}, (err, photos) => {
    if (err) res.status(401).send(err)
    res.status(200).json(photos)
})