【Express系列】第1篇——项目创建
安装 node 和 Express 4
node官网:http://nodejs.org/
Express Github:https://github.com/expressjs/express
到 node官网 下载并安装 node 之后,打开命令行工具,执行下面命令安装 Express:
npm install -g express-generator@
安装完成之后,我们进入到我们想要创建项目的目录,执行下面命令创建一个 Express 项目:
express Express-Base
PS:上面命令中的 Express-Base 是项目名,根据你的需求随意即可
项目结构调整
这样就创建好了一个 Express 项目了,接下来,我们进入刚刚创建好的项目根目录,打开 project.json 文件,可以看到是这样子的:

project.json 文件的各个节点代表什么意思我这里就不解释了,想了解的自己去查就是。
这里我们要改两个地方:
把 scripts.start 的值改成 "node start"
把 dependencies 的 jade 节点去掉
接下来,我们把 bin 目录下的 www 文件移到根目录,重命名为 start.js,然后把已经放空的 bin 文件夹删除掉。
再打开 start.js 文件,把里面第7行的
var app = require('../app');
改成
var app = require('./app');
jade 是一个模版引擎,个人觉得 ejs 已经很好用了,也非常习惯,而且由于这次我搭建的项目是一个前后端分离的项目,用不着服务端的模版引擎,所以直接去掉不用安装
既然我们不用服务端渲染页面,那么根目录下的 views 目录也成多余的了,删掉删掉~
然后打开项目根目录下的 app.js 文件,找到下面关于模版引擎配置的代码将其去掉。
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
再来打开命令行工具,在项目的根目录下运行下面的指令,安装项目依赖的基础模块:
npm install
我们都知道,一个项目如果由多个开发者合作,编码风格很容易会乱七八糟
这里我们引入一个名为 editorconfig 工具,来规范一些基本的配置,如缩进格式,文件编码格式等
非常简单,在项目根目录加入一个 .editorconfig 文件,其内容如下:
# EditorConfig is awesome: http://EditorConfig.org # top-most EditorConfig file
root = true
# 匹配所有文件
[*] # 使用 个空格缩进
indent_style = space
indent_size = # Unix 风格换行模式
end_of_line = lf # 文件为 utf- 格式
charset = utf- # 移除多余空行的空格
trim_trailing_whitespace = true # 行末保留一空行
insert_final_newline = true
目前很多主流的 IDE 都支持 editorconfig,像 webstorm 就默认支持,sublime text 通过安装插件也能支持
这样就能在一定程度上规范团队的代码产出风格了
再看一眼现在的项目目录结构,里面有个 public ,是用来存放 js,css,图片等静态资源的,但我觉得 public 这个名字好像不怎么搭配,里面的子目录名称也过长过繁琐。
于是将 public 目录改成 static,里面的子目录先删除掉。后面再完善里面的内容,因为涉及到客户端的开发工作流,比较复杂,这里先不弄它。
目录改完名后,打开项目根目录下的 app.js 文件,找到下面一行代码:
app.use(express.static(path.join(__dirname, 'public')));
将他修改成
app.use(express.static(path.join(__dirname, 'static')));
这样一来,以后静态资源的存放目录就是 static 了
最后,让我们看一眼目前的项目目录结构:

由于我的项目是在 github 上面的,所以会有一些上面没提到的文件
.gitignore 是 git 的文件忽略配置
README.md 是项目的说明 markdown 文件
【Express系列】第1篇——项目创建的更多相关文章
- Vue.js系列(一):Vue项目创建详解
引言 Vue.js作为目前最热门最具前景的前端框架之一,其提供了一种帮助我们快速构建并开发前端项目的新的思维模式.本文旨在帮助大家认识Vue.js,并详细介绍使用vue-cli脚手架工具快速的构建Vu ...
- 【Windows编程】系列第六篇:创建Toolbar与Statusbar
上一篇我们学习了解了如何使用Windows GDI画图,该应用程序都是光光的静态窗口,我们使用Windows应用程序,但凡稍微复杂一点的程序都会有工具栏和状态栏,工具栏主要用于一些快捷功能按钮.比如典 ...
- Storm系列(三):创建Maven项目打包提交wordcount到Storm集群
在上一篇博客中,我们通过Storm.Net.Adapter创建了一个使用Csharp编写的Storm Topology - wordcount.本文将介绍如何编写Java端的程序以及如何发布到测试的S ...
- Maven系列第8篇:你的maven项目构建太慢了,我实在看不下去,带你一起磨刀!!多数使用maven的人都经常想要的一种功能,但是大多数人都不知道如何使用!!!
maven系列目标:从入门开始开始掌握一个高级开发所需要的maven技能. 这是maven系列第8篇. 整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部 ...
- 【HANA系列】SAP ECLIPSE中创建ABAP项目的步骤
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP ECLIPSE中创建AB ...
- Spring cloud系列教程第二篇:支付项目父工程图文搭建
Spring cloud系列教程第二篇:支付项目父工程图文搭建 在讲解spring cloud相关的技术的时候,咱们就模拟订单支付这个流程来讲讲 在这个支付模块微服务搭建过程中,上面的这些技术,都会融 ...
- maven系列之二maven项目的创建和maven项目的结构
maven系列之一简单介绍了maven的基本信息,安装和配置,大家对maven有一个大概的了解,但是在maven项目开发中远远不够,为了进一步了解maven,现在我们介绍maven项目的创建和mave ...
- 【SSRS】入门篇(一) -- 创建SSRS项目
原文:[SSRS]入门篇(一) -- 创建SSRS项目 在本篇中,您将学习如何在 SQL Server Data Tools (SSDT) 中创建报表服务器项目. 报表服务器项目用于创建在报表服务器中 ...
- 【Python3.6+Django2.0+Xadmin2.0系列教程一】环境搭建及项目创建
由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理.最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧. 好了,话不多说,下面开始进入正题: 环境需求: ...
随机推荐
- day15(mysql 的多表查询,事务)
mysql之多表查询 1.合并结果集 作用:合并结果集就是把两个select语句查询的结果连接到一起! /*创建表t1*/ CREATE TABLE t1( a INT PRIMARY KEY , b ...
- Opengl中的gluProject函数认识
1. 从官方说明如下 https://www.opengl.org/sdk/docs/man2/xhtml/gluProject.xml Name gluProject — map object co ...
- 结对编程--四则运算(Java)梅进鹏 欧思良
结对编程--四则运算(Java)梅进鹏 欧思良 Github项目地址:https://github.com/MeiJinpen/Arithmetic 功能要求 题目:实现一个自动生成小学四则运算题目的 ...
- jdk tomcat maven svn plsql客户端 环境变量配置整理
1 jdk 新建: 1.JAVA_HOME ----- C:\Program Files\Java\jdk1.7.0 2.CLASSPATH ------ .;%JAVA_HOME%\li ...
- Mac iTerm2登陆CentOS提示warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
[报错原因]:没有utf-8这个语系(没添加语言_国名前缀),LC_ALL又没设定值. 服务端解决方法: 在远程系统上, /etc/environment 加入以下两行,重新登陆即可. LANG=en ...
- 设计模式之代理模式(Proxy Pattern)_补充篇
写在前面: 代理模式的内部原理,作用及远程代理的实现在上一篇博文中都做了详细解释,本文只是对其内容的补充,介绍其它代理 一.虚拟代理 首先,明确虚拟代理的作用:在巨大对象被真正创建出来之前,用虚拟代理 ...
- 自己从0开始学习Unity的笔记 I (C#字符串转换为数字)
我基本上从0开始学习编程,运算符基本上跳过,因为知道了 “=”这个符号相当于赋值,然后“==”才是等于,其他和普通运算符号差不都,也就跳过了. 最基础的赋值那种,我看了下代码,似乎没什么难度,估计新手 ...
- MVVM Light 新手入门(2) :ViewModel / Model 中定义“属性” ,并在View中调用
今天学习MVVM架构中“属性”的添加并调用,特记录如下,学习资料均来自于网络,特别感谢翁智华的利刃 MVVMLight系列. 一个窗口的基本模型如下: View(视图) -> ViewModel ...
- C# Po3协议读取邮件内容遇到的问题
背景:最近在做一个小工具,读取PO3协议邮件服务器的指定人员的邮件,东西做出来了,弄了一个While死循环,20秒执行一次, 结果运行了3天,周一来IT人员找上门来了,你的电脑什么情况,怎么一个小时下 ...
- MongoDB VUE的下载及安装
下载: mongo vue官网地址:http://www.mongovue.com/ 安装: 很简单,注意的是:在提示buy 和 OK 的时候点击OK即可: 连接: 默认连接(无用户名密码): 在启 ...