生产构建中缺少NextJS cookie-parser中间件

时间:2018-03-16 13:07:21

标签: node.js build middleware nextjs

我正在开发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进行grepping会产生空结果。

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

1 个答案:

答案 0 :(得分:0)

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

  

将自定义服务器与服务器文件一起使用时,例如调用   server.js,确保将package.json中的脚本密钥更新为:

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

生产减少了一个问题!