Node.js + Express + handlebars搭建个人网站(1)
作为前端,需要学习的东西越来越多了,各种新框架,层出不穷。再加上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
- 查看应用生成器的相关帮助
image.png
- 通过应用生成器生成应用骨架
express --view=hbs myapp
旧的语法 express --hbs myapp不推荐:
建议使用推荐的语法:
生成之后的项目结构如下:
- 启动项目
npm i
npm start
// 或
yarn
yarn start
Node.js + Express + handlebars搭建个人网站(1)相关推荐
- node.js express项目搭建
目录 1.安装Express 2.第一个 Express 框架实例 3.全局安装Express及express-generator 4.初始化一个Express应用 5.启动应用 Express 是一 ...
- node.js服务端搭建电影网站
movieService[电影网站]服务端 基于node.js的express搭建的电影网站后台服务器,数据库为MongoDB,具有用户登录.注册.权限管理.专栏文章.点赞.电影推荐及增删改查管理的完 ...
- 从零开始搭建Node.js, Express, Ejs, Mongodb服务器
http://www.toolmao.com/nodejs-express-ejs-mongodb-server 本文改自非鱼的<[翻译]前端开发人员入门指南,从零开始搭建Node.js, Ex ...
- 使用Node.js+Socket.IO搭建WebSocket实时应用
Web领域的实时推送技术,也被称作Realtime技术.这种技术要达到的目的是让用户不需要刷新浏览器就可以获得实时更新.它有着广泛的应用场景,比如在线聊天室.在线客服系统.评论系统.WebIM等. 作 ...
- Node.js的环境搭建方法和 npm 的使用方法
Node.js的环境搭建方法和 npm 的使用方法 Node.js 环境的搭建 Node.js 介绍 Node.js 下载 配置Node.js node.js 测试 npm(包管理器)使用方法 npm ...
- vue+node.js+mysql项目搭建
前言 用vue搭建前端页面.用node开发后端接口.数据库用mysql 可行性分析 缺点: nodejs单线程,不能做cpu密集型操作,导致时间片不能释放,阻塞后面的任务. nodejs可靠性比较低, ...
- SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- node.js + express 初体验【hello world】
[node.js] 一个神奇的XX 呵呵 :) 不知道怎么形容他才好! [express] 是node.js 开发web应用程序的框架 开发环境:XP 大家共同进步吧 :) 一:前期准备: ...
- Node.js Express+Mongodb 项目实战
Node.js Express+Mongodb 项目实战 这是一个简单的商品管理系统的小项目,包含的功能还算挺全的,项目涵盖了登录.注册,图片上传以及对商品进行增.删.查.改等操作,对于新手来说是个很 ...
最新文章
- 怎样脱离屌丝程序猿的身份
- centos中python报错 SyntaxError: Non-ASCII character ‘\xe7‘ in file car-training.py on line 7, but no en
- 我的编码习惯 —— API 接口定义
- [杭电ACM]1012u Calculate e
- mysql 3.5安装_MYSQL学习笔记-06-搭建数据库
- Failed to issue method call Unit mysql service failed to lo
- python开源项目贡献_如何通过为开源项目做贡献来发展自己的职业
- 几句话就能让你明白:VLAN是什么、TRUNK又是什么
- 【年度重磅】《2021营销自动化应用基准报告》正式发布!
- 分布式视频编码对比实验中H.264/AVC Intra 模式与H.264/AVC Inter Motion模式分析
- Python金融数据挖掘 第11章 复习思考题2 (聚类)选取中华人民共和国第六次人口普查的各地区人口数以及男女比例进行K-Means聚类分析。
- 计算机释放内存的命令,如何设置电脑Win7自动释放内存空间?
- 搞一下 SOA实战 | 01 SOA 开发流程实战
- 自动生成文章摘要[JavaScript 版本]
- js在字符串中间插入横线
- unordered_set使用介绍
- 51单片机使用LCD1602显示DS18B20温度传感器温度
- OC / Swift / Xcode - 怎么私有化init 方法(禁止调用init方法生成对象)
- 2021年焊工(初级)新版试题及焊工(初级)在线考试
- 移动营业厅称部分SIM卡无法用于iPhone4S