
--------------------------------------------- express输出“hello world”
var express = require('express');
var app = express();
//req (请求),res (相应),/是指对于首页的url返回“Hello World”,方法为get
//get是指从服务器端获取数据,post则是发送数据到服务端,下面图片有类似例子。
app.get('/', function (req, res) {
res.send('Hello World!');
});
//设置一个监听器,端口号为3000,服务端调用function()函数
var server = app.listen(3000, function () {
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});

-------------------------------------------
建立一个express框架
!!!!!!!强烈注意:如果输入命令行出现no directory........在命令行添加sudo(这是赋予管理员权限)
建立代码如下:
$ npm install express-generator -g //先安装express应用生成器
$ express -h

在当前工作目录下创建一个命名为myapp的应用

安装所有依赖包
$ cd myapp
$ npm install
启动这个应用
$ DEBUG=myapp npm start
(MacOS 或 Linux 平台)
> set DEBUG=myapp & npm start
Windows 平台
通过 Express 应用生成器创建的应用一般都有如下目录结构:

然后在浏览器中打开http://localhost:3000/网址就可以看到这个应用了。

-------------------------------------------
利用 Express 托管静态文件
app.use(express.static('public'));
#意味public里面都是静态文件,可以直接访问如http://localhost:3000/images/kitten.jpg
#images是在public文件目录下的
#可以设置多个静态的目录
ps:个人尝试了下,直接去访问目录下的图片,不过不能访问,所以只有静态文件可以直接查看,或者设置路由
-------------------------------------------
ps:接下来是对express应用生成器代码的一些理解
express应用框架

-----app.js----------------------------
app.set('view engine', 'ejs') 为设置模板引擎为ejs
app.use(express.favicon()) 是设置图标想修改的话就自己去搞public下面的images文件
app.use(express.logger('dev')); express依赖于connect这里就内建中间件会输出一些日志
app.use(express.json()); 用以解析请求体,这里就会把字符串动态转换为json对象
app.use(express.methodOverride()); connect内建中间件,用以处理post请求,并可以伪装put等http方法
app.use(app.router); 调用路由器解析规则
app.use(express.static(path.join(__dirname, 'public'))); connect内建中间件,设置根目录下的public存放静态文件

#懒的重新截图= =
#next(err),把控制权交给下一个函数处理

-----bin/www.js---------------------------------------------


isNaN is a "is Not a Number" function


----public-------------------------------
存放静态资源。
-----routes-----------------------------

这节我觉得必要说明的,唯一一点就是app.METHOD(path, [callback...], callback),app是express对象的一个实例,METHOD是一个HTTP 请求方法,path是服务器上的路径,callback是当路由匹配时要执行的函数。

---other--------------
app.js 为入口文件
package.json 为模块依赖文件,我们使用npm install时候他会以其配置在网上下载相关包
node_modules 为下载下来的模块文件(package.json)
public 存放静态资源文件
routes 存放路由文件
views 存放相关视图模板文件
网友评论