NodeJS
package.json
NodeJS 项目的配置文件
$ npm init -y
安装的三方包资源也可以添加到这个文件中保存,以便于项目移植。
可以在 package.json 中添加 npm scripts
运行脚本。
安装三方包
$ npm install <package-name> -g --save-dev
CommonJS 模块化规范
定义模块:module.exports = {}
或 exports.xx = yy
引入模块:require(路径名称)
注意,通常 require() 引入模块时,如果是 NodeJS 本身的核心模块,或是安装的第三方模块,直接通过模块名称引入。如果是自已定义的模块,则需要使用相对路径或绝对路径引入,如:require('./module.js')
模块化规范:
AMD - require.js
CMD - sea.js
CommonJS - NodeJS: module.exports/exports require
ES6 - import/export
利用 NodeJS 实现 WebServer
/* 创建一个 WebServer */
// 1. 引入核心模块
const http = require('http')
// 2. 创建服务器
const server = http.createServer((request, response) => {
// 请求的资源路径,请求方式
const { url, method } = request
// 返回响应,调用 end() 方法告诉客户端响应结束
response.setHeader('Content-Type', 'text/html;charset=utf-8')
response.end(
'hello nodejs,你所请求的 url: ' + url + ',你的请求方式为:' + method
)
})
// 3. 在指定端口实现监听
server.listen(3000, () => {
console.log('server running at http://localhost:3000')
})
nodemon
是一个辅助工具,可以监视文件的改变,在文件改变时自动重启 node 应用
$ npm i nodemon -g
安装完毕后,可以直接使用 nodemon
命令来替换以前 node
命令的使用。
MongoDB
MongoDB 是一个基于分布式文件存储的数据库
概念
database :数据库(db)
collection:集合,相当于是 MySQL 中的 table
document:文档,相当于是 MySQL 中表格里的 row
field : 字段,相当于是 MySQL 中表格里的 column
index : 索引
primary key :主键(主要作用:数据唯一标识),默认为 _id
安装
配置环境变量
将 MongoDB 安装目录下的 bin 目录路径添加到环境变量的配置中
启动 mongodb 数据库实例
$ mongod --dbpath /d/db/data
/d/db/data 这个目录是放置数据文件的目录,需要先手动创建出来
使用
- 在命令行下使用
mongo
命令进入数据库
常用命令:
show dbs – 显示所有数据库
db – 当前所在数据库,与 db.getName() 等价
use <db_name> – 切换数据库
db.createCollection(name) – 创建集合
db.getCollection(cname) same as db[‘cname’] or db.cname,根据集合名称获取集合对象,和 db[‘cname’] 或 db.cname 是等价的
db.getCollectionNames() – 获取数据库中所有集合的名称并返回
CRUD ---- C 创建 R 读取 U 更新 D 删除
db..insert() – 创建,添加
db..insertOne()
db..insertMany()
db..find() – 查询
db..update() – 修改
db..updateOne()
db..updateMany()
db..remove()
db..deleteOne()
db..deleteMany()
GUI
robo 3t
mongodb compass
Express
基于 Node.js 平台,快速、开放、极简的 Web 开发框架
使用
安装
$ npm i express -S
RESTful 风格的 API
资源,必须使用名词命名
动词
使用 URL 定位资源,使用 HTTP 动词操纵资源
- GET – 获取资源
- POST – 创建资源
- PUT – 修改资源(完全修改)
- PATCH – 修改资源(部分修改)
- DELETE – 删除资源
连接数据库,实现 CRUD
mongoose – 连接 mongodb
sequelize – 连接 mysql、sqlite 关系型数据库
后端实现文件上传业务
实现文件上传时,前端发送数据的格式需要设置为 multipart/form-data
,并且以 POST
请求的方式,提交上传文件
即时通信
socket 通信,真正的双向通信方式
http 是基于请求-响应模式的,是单向的数据通信方式
websocket,是web端实现 socket 通信时使用的技术