nodejs--Express

Express是最流行的基于Node.js的Web开发框架,可以快速的搭建一个完整功能的网站

最常用的莫过于启动脚本的app.get方法,在app.get方法里的第一个参数指定路径,另一个参数接受一个函数用来渲染页面之类的功能,例如:
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello world!');
});
app.listen(3000);
在app.get中是可以添加next参数的,当我们在项目中需要访问不通的路径的时候,是没有调用next方法的,这样,当网址确认路径之后,不会再调用别的中间件了

1.底层:http模块
在之前的http模块中,我们利用http.createServer建立了一个简单的服务器,那么现在我们看看利用Express封装过的服务器又应该如何来写呢?
var express = require('express');
var app = express();
app.get('/', function (req, res) {
res.send('Hello world!');
});
app.listen(3000)

利用express是不是更简明扼要?在原理上面来看,Express款将就等同于在http模块上面加了一个中间层

3.什么是中间件
中间件就是处理HTTP**请求**的函数,每个中间件可以从App实例,接收三个参数,依次为request对象(代表HTTP请求)、response对象(代表HTTP回应),next回调函数(代表下一个中间件)。每个中间件都可以对HTTP请求(request对象)进行加工,并且决定是否调用next方法,将request对象再传给下一个中间件。

一个不进行任何操作、只传递request对象的中间件,就是下面这样。
function uselessMiddleware(req, res, next) {
next();
}

值得注意的是,上面的next()在正常情况下是不带有参数的,一旦带有参数,必然会抛出一个错误的文本

4.app.use
app.use 不是来处理请求的, 而是来加载处理请求的路由模块的参数.
比如这个例子:
http://expressjs.com/guide.html
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(function(err, req, res, next){
// logic
});

一个请求过来, 被 .use 写好的各个函数依次处理,
更准确说, 是从第一个开始处理, 顺序操作, 也可能截断流程直接返回…
而 app.get 等等 HTTP 请求的操作, 统一在 app.routes 这一个模块里边
http://expressjs.com/api.html#app.routes
所以, 先调用应该是 app.use, 而 app.get 应该是属于被前者调用才对…

5.app.set
定义模板引擎的配置,用来指定变量的值
app.set('views','__dirname+'/views')
app.set('view engine','jade')

6.response

  1. response.redirect //对网页的重定向
    response.redirect("/hello/anime");
    response.redirect("http://www.example.com");
    response.redirect(301, "http://www.example.com");
  2. response.sendFile //方法用于发送文件
    response.sendFile("/path/to/anime.mp4");

  3. response.sender //用于渲染网页模板
    app.get("/", function(request, response) {
    response.render("index", { message: "Hello World" });
    });

7.requeset

  1. request.ip
    request.ip属性用于获得HTTP请求的IP地址

  2. request.files
    request.files用于获取上传的文件

8.搭建HTTPS服务器
var fs = require('fs');
var options = {
key: fs.readFileSync('E:/ssl/myserver.key'),
cert: fs.readFileSync('E:/ssl/myserver.crt'),
passphrase: '1234'
};
var https = require('https');
var express = require('express');
var app = express();
app.get('/', function(req, res){
res.send('Hello World Expressjs');
});
var server = https.createServer(options, app);
server.listen(8084);
console.log('Server is running on port 8084');

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值