使用第三方模块
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指向淘宝镜像

    • 配置npm指向淘宝镜像

      • npm config set registry https://registry.npm.taobao.org/
    • 不想用淘宝的,再设置回原来的就可以了:
      • npm config set registry https://registry.npmjs.org
  • 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文件出来了,当你每次安装一个依赖的时候就锁定在你安装的这个版本。
       

[Node.js] 模块化 -- express模块相关推荐

  1. Node.js模块化开发(非常详细,满满的干货)

    下面是对Node.js模块化开发的整理,西洼港可以帮助到有需要的小伙伴~ 文章目录 Node.js模块化开发 JavaScript开发弊端 Node.js模块化开发 模块成员导出的export方法 模 ...

  2. [Node.js] 模块化 -- path路径模块

    路径问题 nodejs中相对路径,相对的是运行这个node文件的小黑框的路径而言的. 相关变量 __dirname 获取的是当前这个文件所在的这个文件夹的绝对路径 __filename 拿到的是当前这 ...

  3. 模块加载及第三方包:Node.js模块化开发、系统模块、第三方模块、package.json文件、Node.js中模块的加载机制、开发环境与生产环境、cookie与session

    1.Node.js模块化开发 1.1 JavaScript开发弊端 JavaScript 在使用时存在两大问题,文件依赖和命名冲突. 1.2 软件中的模块化开发 一个功能就是一个模块,多个模块可以组成 ...

  4. [Node.js] 模块化 -- url、querystring模块

    前端传参 get传参:拼接在url上面 http://127.0.0.1:4399/joke?id=8&username=admin post传参:不是拼接在url上面 请求体中传递 node ...

  5. 如何使用Node.js,Express和MongoDB设置GraphQL服务器

    by Leonardo Maldonado 莱昂纳多·马尔多纳多(Leonardo Maldonado) 如何使用Node.js,Express和MongoDB设置GraphQL服务器 (How to ...

  6. Node.js 模块化的操作,简单明了的代码帮助你明白后端的实现和前端之前的交互,及解决跨域等问题

      Node.JS 模块化 1.require 导入模块const http=require('http')2.exports 导出模块db={name:'jine',age:22} module.e ...

  7. node.js中模块_在Node.js中需要模块:您需要知道的一切

    node.js中模块 by Samer Buna 通过Samer Buna 在Node.js中需要模块:您需要知道的一切 (Requiring modules in Node.js: Everythi ...

  8. 使用 Node.js、Express、AngularJS 和 MongoDB 构建一个Web程序

    为什么80%的码农都做不了架构师?>>>    使用 Node.js.Express.AngularJS 和 MongoDB 构建一个实时问卷调查应用程序 2014 年 3 月 20 ...

  9. Node.js学习笔记——模块加载机制及npm指令详解

    文章目录 二.模块化 1.模块化的基本概念 2.Node.js 中的模块化 Node.js 中模块的分类 加载模块 Node.js 中的模块作用域 向外共享模块作用域中的成员 Node.js 中的模块 ...

最新文章

  1. lambda函数详解
  2. python精彩编程200例百度_Python趣味编程与精彩实例
  3. 【网址收藏】operatorhub.io
  4. 如何在ASP.NET Core应用中实现与第三方IoC/DI框架的整合?
  5. 几个so经常使用Function
  6. java星座测试需求分析_java十二星座 (快来测试你是什么星座吧)
  7. 工具资源系列之给虚拟机装个windows
  8. 可塑性极强渐变几何空间,设计中不可或缺的素材
  9. uml活动图 各个功能的操作流程和分支_做软件架构设计,你不得不知道这些图...
  10. 中国刹车片自动检测系统行业市场供需与战略研究报告
  11. 【考证】大一规划、考证大军、水水水!
  12. UVa 455 - Periodic Strings
  13. ad gerber文件生成_Gerber竟然可以倒转PCB文件!!!
  14. 第二本书:疯狂人类进化史20190620
  15. idea 亮度 调整_如何设置显示屏幕的亮度
  16. JAVA学习内容汇总(一)
  17. ceph(ceph是什么意思)
  18. windows下bat文件打开目录
  19. 苹果M1芯片其实没有那么好?英特尔做了套PPT官方反击
  20. Fanvas将旧网站的swf动画转为canvas,以解决移动端swf动画无法显示问题

热门文章

  1. python2还能用吗_官方推荐python3,为何还有人在用python2呢?
  2. 聊天机器人-ChatterBot初试
  3. PHP获取input中的值相同报错,laravel单元测试之phpUnit中old()函数报错解决_php实例...
  4. 计算机桌面怎么换服,电脑管家桌面整理怎么更换电脑壁纸?
  5. java线程 stop()_java 多线程5: java 终止线程及中断机制 (stop()、interrupt() 、interrupted()、isInterrupted())...
  6. java string.substring 参数,Java,String类中的subString()方法,stringsubstring
  7. python学生名片系统_基于python的学生信息管理系统!听说好多人的作业都是这个...
  8. python高阶函数map_简单了解python高阶函数map/reduce
  9. nw.js package一般设置
  10. 《机器学习实战》程序清单3-4 创建树的函数代码