Nextjs使用一瞥

Nextjs使用一瞥

上个月偶尔听起有人说过nextjs不错,就小小地了解了一下。 在工作中一个小项目用了用,只用作前端,后端api还是java,感觉还可以,于是想从项目创意到完整的前后端都用nextjs来实现。 现在项目(unhtml.com)一共投入了有52个小时了,占用了不少下班后的时间,也小有感受,特地记录一下。

next.js 小坑记录

  • .env.local 在生产环境也会加载且生效了,所以不要把.env.local 提交到git。当然这纯属我个人问题,我啥都想放进.git来存档。
  • npm run build时,内存一度飙升了1.5G ,把vps整挂了。这和hexo之类的工具所需要的内存差距挺大的,如果线上编译,需要一个内存稍稍大点的主机。
  • setCookie时,set-cookie这个http header头,后面发送的会覆盖前面发送的,也就是仅仅最后一次生效。看了一下NextApiResponse.setHeader的声明,第二个参数是string||string[]。设置多个cookie时,应该用数组,且随时都要记得,只有最后一次调用会实际生效。
  • 有一个链接被链接到了/api/logout,然后。。。页面加载的时候总是会调用一个/_next/data/uYVCOfFIB7kbuJmy1YA4j/api/logout.json 结果又自动登出了。
  • post的数据较大时,请求直接挂起了,完全没有进入handler.看文档说这样设置可以:
export const  config  = {
	api:{
		bodyParser:{
			sizeLimit:"5000kb"
		}
	}
}

但是是完全没有用的,应该是bodyParser这一块有bug了,但是我还没有细看源代码。我只是简单地设置了bodyParser为false:

export const  config  = {
	api:{
		bodyParser:false
	}
}

并在api的handler中用Streamable 自己读取了request里的body。