服务端概念

服务端概念:

服务端(后端/server)为前端提供支撑和营养,像一棵树

职责:提供数据,接受数据,存储数据

前端和后端的交互(回顾http协议,Request 和 Response)

后端如何处理数据

定义前端请求url规则 -- 路由

用Request获取数据,用Response返回数据

读取和存储数据 - 数据库

服务端概念

nodejs

基于Chrome V8 引擎的 JavaScript 运行时 (运行时:代码的运行环境,有了运行时,代码才能被执行)

终端输入mkdir learn:在桌面创建文件夹

//写一段代码通过nodejs运行起来,而且启动了一个服务端
const http = require('http')

// req -- request    res = response
const server = http.createServer((req, res) => {
  const url = req.url   //  '/index.html?a=100'
  const path = url.split('?')[0]  //  '/index.html'
  res.end(path)
})

server.listen(3000)

之后在终端输入ls ,然后输入node index.js,回车

npm(node package manager) nodejs 软件包管理者

官网 https://www.npmjs.com

有几百万的软件包(开源免费)

项目不会从0开始写,现在的创建一个项目都是基于成熟的框架或者工具,搭建起来再加入我们自己写的业务代码,去实现功能

每个成熟的开发语言或者环境,都需要成熟的软件包体系

npm会随着nodejs一起被安装

npm init 初始化环境

npm install lodash --save 安装lodash

Lodash

Lodash -- 是一个一致性、模块化、高性能的JavaScript实用工具库

使用lodash:

1.lodash初始化
2.安装,产生一个依赖,多了一个node.modules文件夹
3.使用

nodemon(帮我们启动服务 )

安装nodemon:npm install nodemon --save-dev

--save 和 --save-dev的区别

在package.json中的表现

// 不会在代码中直接使用

"devDependencies": {

​ "nodemon": "^2.0.12"

}

如果需要在代码中直接使用:--save

如果不需要在代码中直接使用:--save-dev

介绍nodenom的安装和使用

commonjs 模块化

ES6 Module:

  • export ... 或 export default...

  • Import ... from ...

  • 一般用于前端开发

全局安装vue脚手架:npm install @vue/cli -g

如果报错,可以在前面 + sudo

//用这种方式来输出sum函数

export default sumd

//通过import引用并使用内容

import {sum, test} from './utils'

演示ES6 Module

1.进入jiuyeban-code目录,安装vue脚手架:npm i @vue/cli -g
2.然后输入vue create es6-module-test,回车,一路回车
3.输入cd es6-module-test,回车,定位到这个创建好的文件夹,输入npm run serve
4.访问 https://localhost:8080 即可访问

commonjs 语法介绍(主要用于 node.js )开发

和ES6的模块化不一样,commonjs语法使用module.exports来输出我们的内容,使用require(...)来引用我们的内容

require(...)的三个层级(分为三级来处理)

  • 系统自带模块,如require('http')
  • npm包,如require('lodash')
  • 自定义模块,如require('a')

const http = require('http') // nodejs 自带的模块
const _ = require('lodash') // 通过 npm 安装的模块
const {sum, test} = require('./utils') // 自己手写的模块

commonjs 和 ES6 Module 的区别

两者语法不一样

commonjs 是执行时引入,动态的(执行到具体哪一步再引入)
ES6 Module 是打包时引入,静态的(不管什么时候执行,必须得先引入进来)

4.4 为什么要使用模块化

上一篇:Vue(十二):js模块化引用 - require.context


下一篇:art-template 的使用