我正在通过Next.js
建立一个网站。
Next.js
提供了SSR
和dynamic routing
,因此我认为它比使用React.js
更容易。
我有一些问题。
- 我必须使用
express
吗? - 如果是这样,为什么我必须使用它?
-
express
没有提供哪些Next.js
的功能?
我认为next build
和next start
的页面显示效果与我预期的一样。
非常感谢您:)
ps。由于我不是英语的母语人士,请随时编辑这篇文章。
您不需要使用express,接下来已经拥有了自己的内置服务器。但是,由于express很流行,因此开发人员可以更轻松地与数据库进行通信或处理其他后端工作。
next.js变得越来越流行,但没有足够的资源来学习。
,Next.js 和 Express.js 都是服务器端渲染解决方案 (SSR)。但是,您可以使用自定义服务器 API 将 Next.js 与 Express.js 集成,如文档中所述:
大多数情况下,默认的 Next.js 服务器就足够了,但有时您需要运行自己的服务器以集成到现有应用程序中。 Next.js 提供了一个 custom server api。
const express = require("express");
const next = require("next");
const port = 3000;
const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
const handle = app.getRequestHandler();
app.prepare().then(() => {
const server = express();
server.get("/test",(req,res) => {
return app.render(req,res,"/test");
});
server.get("*",res) => {
return handle(req,res);
});
server.listen(port,(err) => {
if (err) throw err;
console.log(`Ready on http://localhost:${port}`);
});
});
在示例中,它展示了如何使用 get
Express 方法处理 Next.js 应用程序中的路由。当用户指向 http://localhost:3000/test
并向下传递 req
和 res
对象以进行渲染时,上面的代码将在 ./pages/test.js 处渲染 React 组件。