nodejs的express框架

介绍:

Express是由路由和中间件构成一个的nodejs的一种web应用框架;

功能:

  • 可以设置中间件来响应 HTTP 请求。

  • 定义了路由表用于执行不同的 HTTP 请求动作。

  • 可以通过向模板传递参数来动态渲染 HTML 页面。

中间件的功能包括:

  • 执行任何代码。
  • 修改请求和响应对象。
  • 终结请求-响应循环。
  • 调用堆栈中的下一个中间件。

Express 应用可使用如下几种中间件:

使用例子:

一.如何设置中间件来响应http请求:

1.创建一个 Express 应用。

express() 是一个由 express 模块导出的入口(top-level)函数。

var express = require('express');
var app = express();//其中app就是一个应用级中间件对象
// 路由和句柄函数(中间件系统),处理指向 /user/:id 的 GET 请求
app.get('/user/:id', function (req, res, next) {
    res.send('USER');//传送HTTP响应
  /*第一个参数:表示模板的文件,相对于views目录 view/index.html
  第二个参数:传递给模板使用的数据
  */
  res.render('','');//响应页面
});
二.应用静态文件(js/css文件)
express.static 是 Express 内置的唯一一个中间件。是基于 serve-static 开发的,负责托管 Express 应用内的静态资源。

eg:
app.use('/public',express.static(__dirname+'/public'));
三.定义路由表执行不同的http请求
app.use('/api',require('./routers/api'));

eg:api.js文件
var express=require('express');
var router =express.Router();

router.get('/user',function (req,res,next) {
res.send('api');
});
/**
用户注册
*/
router.post('/user/register',function (req,res,next) {

//处理不同业务逻辑

});

module.exports=router;
四.使用模板引擎;

eg:
/配置应用模板
//1.定义模板引擎,使用swig.renderFile方法解析后缀名为html文件 ;engine引擎
app.engine('html',swig.renderFile);
//engine('模板引擎名称,同时也是模板文件后缀名',解析处理模板内容的方法);
//2.html文件 设置模板文件存放的目录
app.set('views','./views');
//app.set('views','目录')
//注册模板引擎
app.set('view engine','html');
//app.set('view engine','必须和app.engine方法的第一个参数一致');
swig.setDefaults({cache:false});
 eg:这种方法没用过
var fs = require('fs'); // 此模板引擎依赖 fs 模块
app.engine('ntl', function (filePath, options, callback) { // 定义模板引擎
  fs.readFile(filePath, function (err, content) {
    if (err) return callback(new Error(err));
    // 这是一个功能极其简单的模板引擎
    var rendered = content.toString().replace('#title#', '<title>'+ options.title +'</title>')
    .replace('#message#', '<h1>'+ options.message +'</h1>');
    return callback(null, rendered);
  })
});
app.set('views', './views'); // 指定视图所在的位置
app.set('view engine', 'ntl'); // 注册模板引擎
 

 






原文地址:https://www.cnblogs.com/fangyinghua/p/7659964.html