作为前端,需要学习的东西越来越多了,各种新框架,层出不穷。再加上Node.js的流行,需要学习的就更多了。很早就开始想学习Node,总是学了一半,又放下了,没有真正地掌握过。其中原因也是因为没有一个项目需求,只学API很容易就学不下去。
1. 目标
使用Node.js 搭建个人网站,包含基本的网站首页,以及博客子站,其他的模块后续再慢慢添加上去
2. 选型
2.1. Node.js框架
有了解的Node.js框架有
- 经典的
express
- 最近很火的koa2
- 基于koa2的
egg(阿里的开源框架)
,ThinkJS
- 比较新的,以速度见长的
fastify
面对这么多框架,不可能一下子就全部都掌握,选择哪一种框架都可以。个人感觉,koa2本身非常简洁,很多插件都需要自己去集成,刚开始可以选择像egg
这种的,功能比较齐全的,在学习Node.js的同时也可以学习一般项目架构是怎样的。至于ThinkJS,了解不多,应该是和ThinkPHP一样的思想,如果有ThinkPHP的经验,可以尝试一下。
个人而言,这个项目选择使用express,原因有以下几点:
- express比较经典,相对应的中文资料也多,学习起来,碰到问题也比较容易解决
- fastify比较新,但是中文资料少
- koa2用的人多,但相比之下,还是先从Express入手,熟悉了如何用Node.js搭建一个项目并且对Node.js本身主要的API有比较好的了解之后再去学习Koa2
2.2. 模块引擎
了解了一下现在比较多人使用的模板引擎,有 jade, ejs,handlebars
-
jade
的风格非常简洁,但上手比较难,如果是个人项目中使用,无所谓,但如果是团队中,总体学习成本偏大 -
ejs
的风格跟jsp
的风格很像,有很多人更喜欢用ejs
,特别是有使用Java开发的人 -
handlebars
的风格,跟现在流行的vue模板风格很像
基于以上几点,由于平时使用Vue做的项目比较多,对于handlebars
的这种风格比较喜欢
因此选择使用handlebars
作为前端模板引擎。
3. 框架的搭建
Express的教程还是比较多的,因此搭建起来很方便
express的使用,参考官方文档
Express应用生成器
通过应用生成器可以快速地创建一个应用程序
- 安装express应用生成器
npm i -g express-generator
- 查看应用生成器的相关帮助
- 通过应用生成器生成应用骨架
express --view=hbs myapp
旧的语法 express --hbs myapp不推荐:
建议使用推荐的语法:
生成之后的项目结构如下:
- 启动项目
npm i
npm start
// 或
yarn
yarn start