目录
一、node.js三大内置模块
1、file文件系统模块
(1) file.readFile(path[, option], callback) 用来读取指定文件中的内容
⚫ 参数1: 必选 参数,字符串,表示文件的路径。⚫ 参数2:可选参数,表示以什么 编码格式 来读取文件。⚫ 参数3: 必选 参数,文件读取完成后,通过回调函数拿到读取的结果。(2) file.writeFile(path, data[, option], callback) 用来向指定的文件中写入内容
⚫ 参数1: 必选 参数,需要指定一个 文件路径的字符串 ,表示文件的存放路径。⚫ 参数2: 必选 参数,表示要写入的内容。⚫ 参数3:可选参数,表示以什么格式写入文件内容,默认值是 utf8。⚫ 参数4: 必选 参数,文件写入完成后的回调函数。2、path路径模块
(1) path.join([ ...paths ]) 方法,用来 将多个路径片段拼接成一个完整的路径字符串⚫ ...paths <string> 路径片段的序列⚫ 返回值: <string>(2). path.basename(path[, ext]) 方法,用来从路径字符串中,将文件名解析出来⚫ path <string> 必选参数,表示一个路径的字符串⚫ ext <string> 可选参数,表示文件扩展名⚫ 返回: <string> 表示路径中的最后一部分(3). path.extname(path) 方法,可以获取路径中的扩展名部分⚫ path <string>必选参数,表示一个路径的字符串⚫ 返回: <string> 返回得到的扩展名字符串3、http模块
http.createServer() 方法,即可快速创建一个 web 服务器实例
二、express
1、概念
Express 是 基于 Node.js 平台 , 快速、开放、极简 的 Web 开发框架 。Express 的本质 :就是一个 npm 上的第三方包,提供了快速创建 Web 服务器的便捷方法。2.用法
(1)创建基本的 Web 服务器
// 导入express模块 const express = require('express') // 调用express函数,创建web实例 const app = express() // 调用app.listen(端口号, 启动成功的回调函数),启动服务器 app.listen(80, () => { console.log('server running at http://127.0.0.1') })
(2). 监听 GET 请求
通过 app.get() 方法,可以监听客户端的 GET 请求,具体的语法格式如下:// 4. 监听客户端的 GET 和 POST 请求,并向客户端响应具体的内容 app.get('/user', (req, res) => { // 调用 express 提供的 res.send() 方法,向客户端响应一个 JSON 对象 res.send({ name: 'zs', age: 20, gender: '男' }) })
(3).监听 POST 请求
通过 app.post() 方法,可以监听客户端的 POST 请求,具体的语法格式如下:
app.post('/user', (req, res) => { // 调用 express 提供的 res.send() 方法,向客户端响应一个 文本字符串 res.send('请求成功') })
(4). 获取 URL 中携带的查询参数和动态参数
通过 req.query 对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:
app.get('/', (req, res) => { // 通过 req.query 可以获取到客户端发送过来的 查询参数 // 注意:默认情况下,req.query 是一个空对象 console.log(req.query) res.send(req.query) })
通过 req.params 对象,可以访问到 URL 中,通过 : 匹配到的动态参数:
// 注意:这里的 :id 是一个动态的参数 app.get('/user/:ids/:username', (req, res) => { // req.params 是动态匹配到的 URL 参数,默认也是一个空对象 console.log(req.params) res.send(req.params) })
(5) .express路由
Express 中的路由分 3 部分组成,分别是请求的类型、请求的 URL 地址、处理函数,格式如下:
app.METHOD(PATH, HANDLER)
(6). 模块化路由:
为了 方便对路由进行模块化的管理 ,Express 不建议 将路由直接挂载到 app 上,而是 推荐将路由抽离为单独的模块 。将路由抽离为单独模块的步骤如下:① 创建路由模块对应的 .js 文件② 调用 express.Router() 函数创建路由对象③ 向路由对象上挂载具体的路由④ 使用 module.exports 向外共享路由对象⑤ 使用 app.use() 函数注册路由模块创建路由模块const express = require('express') // 1.导入express模块 const router = express.Router() // 2.创建路由对象 router.get('/user/list', function(req, res) { // 3. 挂载获取用户列表的路由 res.send('Get user list') }) router.post('/user/add', function(req, res) { // 4. 挂载添加用户的路由 router.send('Add new user') }) module.exports = router
注册路由模块
// 导入路由模块 const router = require('./router/user.js') // 注册路由模块 app.use(router)