Node.js-Express框架

  • Express 是一个基于 Node.js 平台,快速、开放、极简的 web 开发框架 ,用来快速搭建Web服务。
  • Express 是一个第三方模块,有丰富的 API 支持,强大而灵活的中间件特性。
  • Express 不对 Node.js已有的特性进行二次抽象,只是在它之上扩展了 Web 应用所需的基本功能
  • 本质是使用各种中间件,快速的搭建服务。 

1.安装

  • 使用 npm init 命令为应用程序创建 package.json 文件。

npm init -y(如果文件夹的名字是中文可以直接输入‘npm init’,手动输入name)

做项目时可以直接复制 package.json 文件然后npm install,按照package.json里记录的内容进行安装。

  • 安装install

 npm install express

注意:

  • 项目目录名字不要取中文,也不要取express ,package.json 文件里的name也不要取express

  • 如果安装不成功

    • 换个网络环境

    • 运行下npm cache clean -f,再重装试试

2.使用

注意:http模块下响应结束的标志是res.end(),而express框架下响应结束的标志是res.send()

// 0. 加载 Express
const express = require('express')

// 1. 调用 express() 得到一个 app
//    类似于 http.createServer()
const app = express()

// 2. 设置请求对应的处理函数
//    当客户端以 GET 方法请求 / 的时候就会调用第二个参数:请求处理函数
//相当于sever.on监听get方法
app.get('/', (req, res) => {
  res.send('hello world')
})

// 3. 监听端口号,启动 Web 服务
app.listen(3000,()=>{
    console.log('running');
})
  • app.get('/')相当于添加个事件监听:当用户以get方式求"/"时,它后面的回调函数会执行,其回调函数中的req,res与前面所学http模块保持一致。

  • res.send()是exprss提供的方法不是nodejs提供的用于结束本次请求。类似的还有res.json(),res.sendFile() 。

3.express下的art-template:

  • 安装

npm i express-art-template

  • 使用 

前提是需要先引入express框架。

app.engine('html', require('express-art-template'))//把express-art-template相应内容引入到express框架下,应用于html类文件。

引入express-art-template就可以使用render的方式渲染页面了,但是在express框架下不需要用对象去接收【var str=tempalte.render('',{});res,end(str)】,而是直接集成在response上,直接【res.render】

4.托管静态资源

让用户直接访问静态资源是一个web服务器最基本的功能。

  • 静态资源:不是动态进行更改的。

图片:http://localhost:3000/1.png
CSS样式:http://localhost:3000/css/style.css
静态JS:http://localhost:3000/js/index.js

 4.1限制前缀

通过限制前缀的方式来决定web服务上的路径是否开放,把可以随便访问的静态文件放在开放的路径下,而需要受保护的文件放在不开放的路径下,想通过前端的请求请求不到,只有服务器响应给对方的情况下才能拿到。

// 限制访问前缀(前端的请求) static静态(托管的是服务端的一个文件夹路径)
app.use('/public', express.static('public'))

这意味着想要访问public下的内容,必须要在请求url中加上/public 

4.2post接口 

利用post请求获取数据的时候需要利用中间件

4.3中间件 

当使用post请求,需要利用中间件获取post请求提交的数据,中间件是一个特殊的url地址处理函数。

body-parser

安装:

npm i body-parser

引入:

var bodyParser=require('body-parser')

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

app.use(bodyParser.json())

ps:使用中间件后req上会有一个body属性,req.body是键值对的形式,可以拿到前端请求的数据 。

4.4利用Express框架搭建留言板

引入express,express-art-template,body-parser

var express = require('express')
var app = express()
//利用post接口需要引入中间件
var bodyParser=require('body-parser')
var arr = [
    {
        name: 'aa',
        content: 'bbb',
        timer: '2018-11-2 17:11:22'
    },
    {
        name: 'bbb',
        content: 'cccc',
        timer: '2028-11-2 17:11:22'
    }
]
//静态托管 限制前缀(限制的是请求端的)
app.use('/public', express.
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值