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