node中的Express框架详解

 更新时间:2023年04月22日 08:43:33   作者:忆凡_  
这篇文章主要介绍了node中的Express框架,框架是为了规范开发流程,降低开发难度,提高开发效率而制定的一套共人们使用的功能模块或者是编程的约定,需要的朋友可以参考下

今天带领大家初识一下 Express框架 ;让我们一起来看看吧

Express框架

Express文档

1.什么是框架

可以理解为是一条路,要遵守一定的规则,就会给咱们提供很多便利。为了规范开发流程,降低开发难度,提高开发效率而制定的一套共人们使用的功能模块或者是编程的约定。

2.express安装

  1. mkdir myapp 创建项目目录。
  2. cd myapp==>npm init。
  3. npm install express --save (可替换为[-S])。 

3.创建web服务

基本遵循之前的四个步骤:

  • 导入需要使用的express包
  • 创建web实例
  • 定义允许访问的地址 ( 路由 )
    • 原先的输出: res.end()
    • 使用express后的输出: res.send()
  • 启动服务 (监听端口)
//前提是安装好express,导包
let express=require('express');
//创建web服务
let app=express();

//配置路由
  //监听  get请求
  //req  请求对象
  //res  响应对象 
app.get("请求的URL",(req,res)=>{
    //逻辑
    //向客户端响应数据
    res.send({id:1,name:'张三'})
});
//监听post请求
app.post("请求的URL",(req,res)=>{
    //逻辑
});
......

//开启服务器
app.listen(8000,()=>{})

4.路由

接收发送请求,分析请求路径(pathname),分发到指定的位置。

由 :请求方式+请求路径

(1)get发送数据

查询字符串:?key=value&key=value

(2)get接收数据

Express中内置了一个API,可以直接通过request.query来获取。

request.query

// 在express中可以直接通过 request.query 来获取字符串参数
// http://127.0.0.1:4000/about?name=zhangsan&message=hello
app.get('/about',function (request,response) {
  console.log(request.query);
  response.send('关于我');
})

(3)get动态路由

/path/:id

接受数据:req.params

(4)post接收数据

在Express中没有内置获取 post 请求体的API,我们需要使用第三方插件 body-parser

安装 npm install body-parser

配置 body-parser

进行下方代码的配置,就会在 request 请求对象上就会多出来一个属性:body 我们就可以直接通过 request.body 来获取表单 POST 请求体的数据了

app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

使用

var express = require('express')
var bodyParser = require('body-parser')

var app = express()

app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

app.post('/about',function (request,response) {
  console.log(request.body);
})

(5)post传递数据

const express = require('express');
const app = express();
app.post('/api/post', function(req, res) {
  // 直接返回对象
  res.send({ name: 'abc' });
});
app.listen('8088', () => {
  console.log('8088');
});

5.模板引擎 

什么是模板引擎

模板引擎是一个将页面模板和要显示的数据结合起来生成HTML页面的工具。

引入模板引擎设置模板目录设置模板引擎渲染模板

app.render(viewname,data,callback)

原理

function render(tpl,data){
    return tpl.replace(/\{\{(\w+)\}\}/g,function(input,words){
        return data[words];
        })
}
var result = render('<h1>{{title}}</h1>',{title:'人生如此美好'})

在express中使用模板引擎

app.set('views','./views'); //设置模板存储位置
app.set('view engine','ejs'); //设置模板引擎

设置模板引擎后缀

app.set('views',path.join(__dirname,'views')); //设置模板存储位置
app.set('view engine','html');
app.engine('html',require('ejs').renderFile); //使用ejs模板引擎解析html

ejs的标签

  • <% ‘Scriptlet’ 标签, 用于控制流,没有输出
  • <%= 向模板输出值(带有转义)
  • <%- 向模板输出没有转义的值
  • <%# 注释标签,不执行,也没有输出
  • <%% 输出字面的 ‘<%’
  • %> 普通的结束标签

语法

<% code %> //javascript代码
<%= code %> //显示替换过html的特殊字符内容
<%- code %> //显示原始html内容(支持标签)

<%= code %><%- code %>的区别,code为普通字符串两者没有区别,为标签时<%- code %>会显示标签效果

包含include

<% include header %>
<% include tpl/footer %>

自定义分隔符

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
var ejs = require('ejs');
ejs.delimiter = '$';
app.engine('ejs',ejs.renderFile);

6.静态文件托管

设置静态托管:app.use( express.static ( ) )

本方法一定要写在具体的路由监听之前。

app.use(express.static('static'));
//让app实例去使用一些内容(常规的方法,也是一些中间件);
//express.static("public")中的参数是静态路由资源所在的目录的名字

//其还支持虚拟的前缀用于迷惑被人
app.use('/gjsgadjgajdgadgajdga',express.static('static'));

前缀的使用意义:

可以迷惑被人,一定程度上阻止被人猜测我的服务器的目录结构可以帮助我们更好的阻止和管理静态资源

到此这篇关于node中的Express框架详解的文章就介绍到这了,更多相关node的Express框架内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • node.js中 redis 的安装和基本操作示例

    node.js中 redis 的安装和基本操作示例

    这篇文章主要介绍了node.js中 redis 的安装和基本操作,结合实例形式分析了node.js中Redis下载、安装、数据类型及基本操作技巧,需要的朋友可以参考下
    2020-02-02
  • Node.js API详解之 readline模块用法详解

    Node.js API详解之 readline模块用法详解

    这篇文章主要介绍了Node.js API详解之 readline模块用法,结合实例形式详细分析了Node.js API中readline模块基本函数、功能、用法及操作注意事项,需要的朋友可以参考下
    2020-05-05
  • 实例详解Nodejs 保存 payload 发送过来的文件

    实例详解Nodejs 保存 payload 发送过来的文件

    这篇文章主要介绍了实例详解Nodejs 保存 payload 发送过来的文件 的相关资料,需要的朋友可以参考下
    2016-01-01
  • node.js中的fs.fsync方法使用说明

    node.js中的fs.fsync方法使用说明

    这篇文章主要介绍了node.js中的fs.fsync方法使用说明,本文介绍了fs.fsync的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • 基于Node.js搭建hexo博客过程详解

    基于Node.js搭建hexo博客过程详解

    这篇文章主要介绍了基于Node.js搭建hexo博客过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
    2019-06-06
  • 进阶之初探nodeJS

    进阶之初探nodeJS

    本文主要介绍了nodeJS的相关知识。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • 详解NODEJS的http实现

    详解NODEJS的http实现

    这篇文章主要介绍了详解NODEJS的http实现的技术过程以及详细分析,需要的朋友学习参考下吧。
    2018-01-01
  • npx的使用及原理分析

    npx的使用及原理分析

    这篇文章主要介绍了npx的使用及原理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • Node.js API详解之 util模块用法实例分析

    Node.js API详解之 util模块用法实例分析

    这篇文章主要介绍了Node.js API详解之 util模块用法,结合实例形式分析了node.js API中util模块基本功能与相关函数使用技巧,需要的朋友可以参考下
    2020-05-05
  • Node.js使用cookie保持登录的方法

    Node.js使用cookie保持登录的方法

    本篇文章主要介绍了Node.js使用cookie保持登录的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05

最新评论