Node 之 Express 学习笔记 第一篇 安装
最近由于工作不忙,正好闲暇时间学学基于 node 的 web开发框架。
现在关于web开发框架除了Express 还有新出的 KOA以及其它一些。
但是想想还是先从 Express 入手吧。因为比较成熟了,社区也健壮。
关于安装 Express 还是比较简单的,开始现在 win 环境下来学习,以后会过渡到 linux上。
首先,假定安装了,nodejs。接下来就创建一个目录。
mkdir express cd express
通过 npm init 命令创建一个 package.json 文件。
npm init
此时命令将要求你输入几个参数,例如此应用的名称和作者等。可以根据自己实际情况活随便输入,但是到提示下面语句时。需要建立一个入口文件。
entry point: (index.js)
接下来安装 Express 并将其保存到依赖列表中:
npm install express --save
装好之后,进目录,在目录下创建一个名为 app.js 的文件, 目录结构如下:

打开 app.js 文件,将下列代码复制进去:
var express = require('express'); //将express 模块包含到程序中来。
var app = express(); //express 模块入口函数
//添加一个路由http get (app.get(some url, do something);)
app.get('/',function(request,response){
//Express为response对象添加了send()方法,可以处理响应。
response.send('Hello Express!');
});
//监听主机端口3000,返回该主机对象。
var server = app.listen(3000,function(){
//获取主机信息
var host = server.address().address;
//获取端口号
var port = server.address().port;
console.log("start: at http://%s:%s",host,port);
});
通过如下命令启动:
node app.js
浏览器输入:
http://localhost:3000/
会返回 : Hello Express!
通过应用生成器工具 express 可以快速创建一个应用的骨架
通过如下命令安装:
npm install express-generator -g
例如,下面的示例就是在当前工作目录下创建一个命名为 myapp 的应用:
express myapp
create : myapp
create : myapp/package.json
create : myapp/app.js
create : myapp/public
create : myapp/public/javascripts
create : myapp/public/images
create : myapp/routes
create : myapp/routes/index.js
create : myapp/routes/users.js
create : myapp/public/stylesheets
create : myapp/public/stylesheets/style.css
create : myapp/views
create : myapp/views/index.jade
create : myapp/views/layout.jade
create : myapp/views/error.jade
create : myapp/bin
create : myapp/bin/www
-h 选项可以列出所有可用的命令行选项: (例如:express myapp -e)
$ express -h
Usage: express [options] [dir]
Options:
-h, --help output usage information
-V, --version output the version number
-e, --ejs add ejs engine support (defaults to jade)
--hbs add handlebars engine support
-H, --hogan add hogan.js engine support
-c, --css <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css)
--git add .gitignore
-f, --force force on non-empty directory
然后安装所有依赖包:(自己第一次装的时候,忘记了这一步,结果,怎么启动都失败)
cd myapp npm install
启动这个应用(MacOS 或 Linux 平台):
DEBUG=myapp npm start
Windows 平台使用如下命令:
set DEBUG=myapp & npm start
然后在浏览器中打开 http://localhost:3000/ 网址就可以看到这个应用了。i
通过 Express 应用生成器创建的应用一般都有如下目录结构:
.
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.jade
├── index.jade
└── layout.jade 7 directories, 9 files
Node 之 Express 学习笔记 第一篇 安装的更多相关文章
- Node 之 Express 学习笔记 第二篇 Express 4x 骨架详解
周末,没事就来公司加班继续研究一下Express ,这也许也是单身狗的生活吧. 1.目录结构: bin, 存放启动项目的脚本文件 node_modules, 项目所有依赖的库,以及存放 package ...
- ActionBarSherlock学习笔记 第一篇——部署
ActionBarSherlock学习笔记 第一篇--部署 ActionBarSherlock是JakeWharton编写的一个开源框架,使用这个框架,可以实现在所有的Android ...
- ASP.NET Core 学习笔记 第一篇 ASP.NET Core初探
前言 因为工作原因博客断断续续更新,其实在很早以前就有想法做一套关于ASP.NET CORE整体学习度路线,整体来说国内的环境的.NET生态环境还是相对比较严峻的,但是干一行爱一行,还是希望更多人加入 ...
- Asp.net core Identity + identity server + angular 学习笔记 (第一篇)
用了很长一段时间了, 但是一直没有做过任何笔记,感觉 identity 太多东西要写了, 提不起劲. 但是时间一久很多东西都记不清了. 还是写一轮吧. 加深记忆. 这是 0-1 的笔记, 会写好多篇. ...
- Django学习笔记第一篇--Hello,Django
一.Django的安装: 1.python虚拟运行的环境的安装以及安装django: sudo pip install virtualenv export VIRTUALENV_DISTRINUTR= ...
- Android学习笔记(第一篇)编写第一个程序Hello World+Activity
PS:终于开始正式的搞Android了...无人带的一介菜鸟,我还是自己默默的努力吧... 学习内容: 1.编写第一个Hello World程序.. 学习Android,那么就需要有一个编译器来集 ...
- Coap协议学习笔记-第一篇
1. 物联网应用上一般使用单片机(或者其他SOC),单片机的RAM内存一般只有20KB~~128KB左右,然而一个TCP协议栈可能就20KB,所以只能用UDP,因为UDP相对小很多,然后在UDP上加了 ...
- Vue.js学习笔记 第一篇 数据绑定
双花括号文本插值 先来个最简单的例子,看完之后立马会用Vue了,是不是很有成就感 <!DOCTYPE html> <html> <head> <meta ch ...
- Spring学习笔记第一篇——初识Spring
1.简单介绍 spring的ioc底层是先配置xml文件,接着创建工厂,利用dom4j解析配置文件,最后通过反射完成.大概步骤差不多这样,这些具体代码spring帮你完成了.现在我们只需要配置xml和 ...
随机推荐
- 合并两个rs结果输出
<%Const SqlDatabaseName = "DNN625" ' 数据库名字' Const SqlPassword = "123456& ...
- record
http://www.cnblogs.com/90zeng/p/python_translation.html http://www.cnblogs.com/netfocus/p/4478094.ht ...
- PHP——四种基本排序算法
分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序. $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 思路分析 ...
- 洛谷 P1040 加分二叉树
题目描述 设一个n个节点的二叉树tree的中序遍历为(1,2,3,…,n),其中数字1,2,3,…,n为节点编号.每个节点都有一个分数(均为正整数),记第i个节点的分数为di,tree及它的每个子树都 ...
- AFNetworking2.0 NSHipster翻译
AFNetworking 是当前 iOS 和 Mac OS X 开发中最广泛使用的开源项目之一.它帮助了成千上万叫好又叫座的应用,也为其它出色的开源库提供了基础.这个项目是社区里最活跃.最有影响力的项 ...
- json字符串、json对象、数组 三者之间的转换
json字符串转化成json对象 // jquery的方法 var jsonObj = $.parseJSON(jsonStr) //js 的方法 var jsonObj = JSON.parse(j ...
- Http(1)
#http协议版本 http1.0:当前浏览器客户端与服务器端建立连接之后,只能发送一次请求,一次请求之后连接关闭. http1.1:当前浏览器客户端与服务器端建立连接之后,可以在一次连接中发送多次请 ...
- php动态网页实现页面静态化 通过在初次被访问时生成html文件保存起来,下次该PHP程序被访问时就直接找到以前被访问过的html页面
一.什么是静态页面?什么是动态页面 静态页面是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页.不能 静态页面 动态页面 区别: ...
- HDU--5280(dp或枚举)
官方题解: 这个题有非常多O(n2)的算法.这里说一种:枚举每个区间,在枚举区间的同一时候维护区间内的最小值和区间和,将最小值与P的大小进行比較,贪心地取最大值就可以.注意若枚举到的区间是整个数组,则 ...
- Service 如何知道caller
重写Binder的onTransact方法 1 you need to do that in Binder#onTransact method, this is a good place for ...