[Node.js] 模块化 -- express模块

使用第三方模块
1.新建一个文件夹,文件夹的名字非中文,名字也不要和模块名字一样.
2.进到文件夹里面去,命令运行:npm init -y这个命令可以理解成是初始化
3.下载模块, 去npm官网搜索模块,用他的说明来下
4.使用模块,去模块的官网,或者模块说明中来使用.

使用express模块来创建服务器

在这里插入图片描述

//导入express 模块
const express = require('express')
//创建一个服务器
const app = express()
// 设置返回给用户看的内容
app.get('/', function (req, res) {
    //如果是用内置模块http创建的服务器,返回的内容用res.end()响应.
    //现在我们这里用的是express模块创建的服务器,那用res. send()响应
    res.send('Hello World')
})
//启动服务器
app.listen(4399,()=>{
    console.log('服务器开启了');
})

 
 

使用express模块创建一个静态资源服务器

在这里插入图片描述

  • js部分
//导入express 模块
const express = require('express')
//创建一个服务器
const app = express()

app. use(express.static( 'web'))
// 设置返回给用户看的内容
// app.get('/', function (req, res) {
//     res.send('Hello World')
// })
//启动服务器
app.listen(4399,()=>{
    console.log('服务器开启了');
})
  • html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body{
            background-color: red;
            /*background-color: green;*/
            /*background-color: blue;*/
        }
    </style>
</head>
<body>
1页面
</body>
</html>

 
 

在这里插入图片描述

实现一个简单的post接口
//导入express 模块
const express = require('express')
//创建一个服务器
const app = express()
// 写接口
app.post('/sb', (req, res)=> {
    res.send('111')
})
//启动服务器
app.listen(4399,()=>{
    console.log('服务器开启了');
})

 
 

实现一个简单的get接口

接口:得到一条随机笑话
接口地址: /joke
请求方式: get
参数:无
返回:一条笑话

//导入express 模块
const express = require('express')
//创建一个服务器
const app = express()
// 写接口
app.get('/joke', (req, res)=> {
    //准备n条笑话(实际开发的时候笑话们肯定是从数据库或者是其他的数据源获取到的.
    let arr = ['111','222','333']
    let index = Math  .floor (Math. random()*3)//0 1 2
    //返回笑话
    res.send(arr[index])
})
//启动服务器
app.listen(4399,()=>{
    console.log('服务器开启了');
})

 
 

实现一个带有参数的post接口

接口:用户登录
请求地址: /login
请求方式:post
请求参数:

  • username password
  • 登录账号/用户名 用户密码

返回值:登录成功/登录失败

在这里插入图片描述
如果在输入命令时卡了或者下载错了,可以使用命令"npm cache clean -f"

//导入express 模块
const express = require('express')
const bodyParser = require('body -parser')

//创建一个服务器
const app = express()

// parse application/ x-www- form- urlencoded
app. use(bodyParser.urlencoded({ extended: false}))

// 写接口
app.post('/login', (req, res)=> {
    //接收用户传递过来的用户名和密码

    //由于是post方式传递过来的参数,所以用req.query这种方式拿不到.
    // console .log(req) ;
    // console.log(req.query);

    //要想获取到通过post传递过来的参数,就要使用第三方模块:body-parser
    // 就用reg. body来获取参数。
    console.log(reg.body);

    //处理
    if(req.body.username == 'admin' && req.body.password == '888888'){
        res .send({
            code:200,
            msg:'登陆成功'
        })
    }else {
        res.send({
            code:400,
            msg:'账号密码不正确'
        })
    }

    res.send('111')
})
//启动服务器
app.listen(4399,()=>{
    console.log('服务器开启了');
})

 
 

实现一个带有参数的get接口

接口:查询英雄外号 / 根据英雄名返回英雄外号
接口地址: /getNickName
请求方式: get
请求参数: heroName英雄名(提莫/盖伦/李青… )
返回值:英雄外号

//导入express 模块
const express = require('express')
//创建一个服务器
const app = express()
// 设置返回给用户看的内容
app.get('/getNickName', (req, res)=> {
    // 要接收前端传递过来的参数(英雄名)
    console . log(req. query)

    //处理
    let heroNickName ='';
    switch (req. query.heroName) {
        case '提莫':
            heroNickName = '迅捷斥候'
            break;
        case '提莫':
            heroNickName = '迅捷斥候'
            break;
        case '提莫':
            heroNickName = '迅捷斥候'
            break;
        default:
            heroNickName = '没有该英雄'
            break;
    }
    res.send('Hello World')
})
//启动服务器
app.listen(4399,()=>{
    console.log('服务器开启了');
})

 
 

实现一个返回json数据的接口

接口:返回一个食物
接口地址: /food
请求方式: get
请求参数:无
返回值: json

//导入express 模块
const express = require('express')
//创建一个服务器
const app = express()
// 设置返回给用户看的内容
app.get('/food', (req, res)=> {
    res.send({
        foodName: '红烧肉',
        price: 50,
        description: '好吃好吃好想吃'
})
})
//启动服务器
app.listen(4399,()=>{
    console.log('服务器开启了');
})

 
 

npm与cnmp介绍
  • 1.npm

    • 全称node package manager
    • 官方推出的包管理工具
    • 不需要额外安装,安装node之后自带
    • 因为服务器不在国内,所以有时候安装特别慢,甚至无法成功
  • 2.npm指向淘宝镜像

  • 3.cnpm

    • 全称china node package manager
    • 非官方推出的包管理工具
    • 需要额外安装: npm install -g cnpm --registry=https://registry. npm. taobao. org
    • 国内安装特别快,不需要翻墙(如果特殊情况无法安装,也可使用npm)
    • 安装成功之后,通过cnpm -v查看

 
 

package.json与package-lock.json的区别
  • 1.使用npm5之前的版本,是不会生成package-lock.json这个文件的。
  • 2.npm5以后,包括npm5这个版本,才会生成package-lock.json文件
  • 3.当使用npm安装包的时候,npm都会生成或者更新 package-lock.json 文件
    • npm5以后的版本,在安装包的时候,不需要加 --save (-s) 参数,也会自动在package.json中保存依赖项
    • 当安装包的时候,会自动创建或者更新package-lock.json文件
    • package-lock.json文件内保存了node_modules中所有包的信息,包含这些包的名称、版本号、下载地址。带来好处是,如果重新npm install的时候,就无需逐个分析包的依赖项,因此会大大加快安装速度。
    • 从package-lock.json文件名来看,lock代表的是 锁定”的意思。它用来锁定当前开发便用的版本号,防止 npm instal 的时候自动更新到了更新版本。因为新版本有可能会更新老的 api,导致之前的代码出错。
    • 原来的package.json文件只能锁定大版本,也就是版本号的第一位,并不能锁定后面的小版本,你每次 npm install 都是拉取的该大版本下的最新的版本,为了稳定性考虑我们几乎是不敢随意升级依赖包的,这将导致多出来很多工
      作量,测试/适配等,所以package-lock.json文件出来了,当你每次安装一个依赖的时候就锁定在你安装的这个版本。
       
      在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值