express - Next.js,Express.js 应用程序的 api 在开发中运行,但在生产中状态为 404
问题描述
我已经在生产环境中部署了 nextjs、expressjs 应用程序,但所有 api 都得到 404。我的页面运行良好
var session = require('express-session');
var passport = require('passport');
const KnexSessionStore = require('connect-session-knex')(session);
const knex = require('./db/knex.js');
const authMid = require('./config/utils')
const app = express();
app.use(compression())
app.use(cookieParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));
// sesstion
const store = new KnexSessionStore({
knex: knex,
tablename: 'sessions' // optional. Defaults to 'sessions'
});
app.use(session({
name: 'connect.sid',
store: store,
secret: 'somesupersecretkey',
resave: false,
saveUninitialized: false,
cookie: {
maxAge: 1000 * 60 * 60 * 24 * 7
},
// cookie: { secure: false }
}));
app.use(passport.initialize());
app.use(passport.session());
require("./config/passport");
require("./config/passport_fb");
require("./config/passport_google");
var routes = require('./routes/index');
routes.mp_routes(app);
// Server-side
const route = pathMatch();
// pages set up
// private & public
app.get('/', (req, res) => {
return nextApp.render(req, res, '/index', req.query)
})
app.get('/questions', (req, res) => {
return nextApp.render(req, res, '/questions', req.query)
})
我的 routes/index.js 文件看起来像
module.exports.mp_routes = (app) => {
app.use('/api/v1', questionsRoutes),
app.use('/api/v1', answersRoutes)
}
所有 nextjs 页面和 express api 在开发中都可以正常工作。我不需要做任何事情,但在生产页面上确实可以工作,但所有 api 都说状态 404。我该如何解决
解决方案
推荐阅读
- c# - 无法更新数据库以匹配当前模型,因为有挂起的更改 EF
- python - 如何抑制“从未等待协程”警告?
- powershell - 使用 echo 执行的 Powershell 命令?
- jpa - Eclipselink翻译的sql字符串异常
- android-studio - AndroidStudio Kotlin 连接蓝牙
- python - 让地图对象列出的最快方法
- python - 如何从 MySQL db 中的一行获取最新值?
- python - 迭代器如何知道下一个项目是什么?
- javafx - JavaFX TreeTableColumn:如何触发列调整大小并保持新宽度
- android - 如何检测导航图中的过渡结束?