【问题标题】:NextJS cookie-parser middleware absent from production buildNextJS cookie-parser 中间件在生产构建中不存在
【发布时间】:2018-03-16 13:07:20
【问题描述】:

我正在开发一个 NextJS 应用程序,并且在开发过程中一直在使用npm run dev。现在我正在尝试按照GitHub page 中的描述进行生产构建。

我的应用在生产模式下崩溃了;似乎cookie-parser 节点中间件未安装在生产版本中?我是这样设置的:

server.js

const express = require('express');
const next = require('next');
const cookieParser = require('cookie-parser'); // require cookie-parser

const dev = process.env.NODE_ENV !== 'production';
const app = next({ dev });
const handle = app.getRequestHandler();

app.prepare()
.then(() => {
    const server = express();
    server.use(cookieParser());                // use cookieParser

    server.get('*', (req, res) => {
        return handle(req, res);
    });

    server.listen(3000, (err) => {
        if (err) throw err;
        console.log('> Ready on http://localhost:3000');
    });
})
.catch((ex) => {
    console.error(ex.stack);
    process.exit(1);
})

稍后在代码中我访问节点req 对象。在开发模式下,req.cookies 如我所料。在生产模式下它不存在。

生产构建目录中似乎没有 server.js 文件。更重要的是,在所述生产构建目录中搜索cookie-parsercookieParser 会产生空结果。

知道发生了什么以及如何让cookie-parser 在生产 NextJS 构建中工作?

【问题讨论】:

    标签: node.js build middleware nextjs


    【解决方案1】:

    Found the answer 在同一个 GitHub 页面上。

    当使用带有服务器文件的自定义服务器时,例如调用 server.js,确保将 package.json 中的 scripts 键更新为:

    {
      "scripts": {
        "dev": "node server.js",
        "build": "next build",
        "start": "NODE_ENV=production node server.js"
      }
    }
    

    生产构建的一个问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-17
      • 2021-01-13
      • 2021-06-19
      • 2020-10-04
      • 1970-01-01
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多