node03
昨日知识
1. npm安装包和卸载包
2. http模块开启服务
3. http服务访问路径
4. http服务访问html页面
5. http渲染css js
6. 模板引擎渲染页面
7. nodemon的安装
今日知识
1. express的介绍
2. express的基本使用
3. express的快捷方式
4. 静态资源文件托管
5. ejs 模板引擎
6. art-template模板引擎
7. 中间件
8. mysql 和 sql语句
9. 模块加载的优先顺序
express 服务器基本使用
1. 安装 express cnpm i express -S
2. 1.导入express
const express = require('express')
2.创建服务器
const app = express()
3.监听用户请求
app.get('/', (req, res) => {
// 使用 express 调用 http 模块中的 end 方法向客户端发送数据
// res.end('你好!')
res.send('你好!')
})
4.listen监听对应的端口号
app.listen(3000, () => {
console.log('server running at http://127.0.0.1:3000')
})
express快捷方法
// 1. 导入express
const express = require("express")
const path = require('path')
const app = express()
app.get('/',(req,res)=>{
// res.end([1,2,3]) end只能end字符串 和buffer 两种类型
// res.send([123,90,9]) send可以发送多种数据类型
// sendFile可以将 静态页直接返回给客户端
// 只写一个参数 必须是绝对路径
// 写两个参数
// 1. 借助path 模块进行路径拼接
// 2. 相对路径 , {root:__dirname}
res.sendFile(path.join(__dirname,'./index.html'))
res.sendFile('./index.html',{root:__dirname})
})
app.listen(9000)
静态资源托管
1. app.use() 的作用,就是注册中间件
express.static() 方法,可以把 指定的目录,托管为静态资源目录,这样,指定目录下的所有文件,
都可以直接被 浏览器来访问
2. app.use(express.static(托管的文件目录))
配置虚拟路径
// 可以在托管静态资源文件的时候,指定要挂载的虚拟路径;
app.use(虚拟路径, express.static(托管的文件目录))
ejs 模版引擎渲染页面
1. 安装ejs npm i ejs -S
2. const express = require("express")
const app = express()
//设置使用模版引擎 此处的两个值是固定写法
app.set('view engine','ejs')
设置路径 views 固定写法 模版页面的路径
app.set('views', './ejs_pages') 如果不设置 保证当前项目中有一个views文件夹,文件夹中一定要存在render的模版页面
app.get('/',(req,res)=>{
res.render('模版页面',{渲需要染的数据})
})
app.listen(9000)
express中使用art-template
1. 安装 cnpm i art-template express-art-template -S
2. const express = require("express")
const app = express()
//1自定义模版引擎
app.engine('html', require('express-art-template'))
//2.设置使用模版引擎 此处的两个值是固定写法
app.set('view engine','html')
//3 设置路径 views 固定写法 模版页面的存放路径
app.set('views', './art_pages') 如果不设置 保证当前项目中有一个views文件夹 文件夹中一定要存在render的模版页面
app.get('/',(req,res)=>{
res.render('模版页面',{渲需要染的数据})
})
app.listen(9000)
后端路由
const express = require('express')
const app = express()
app.get('/', (req, res) => {
res.sendFile('./views/home.html', { root: __dirname })
})
app.get('/movie', (req, res) => {
res.sendFile('./views/movie.html', { root: __dirname })
})
app.get('/about', (req, res) => {
res.sendFile('./views/about.html', { root: __dirname })
})
app.listen(3000, () => {
console.log('server running at http://127.0.0.1:3000')
})
修改
1. 新建js文件 这个文件是写路由对象的对应规则的
1. const express = require('express')
2. const router = express.Router()
router.get('/', (req, res) => {
res.sendFile('./views/home.html', { root: __dirname })
})
router.get('/movie', (req, res) => {
res.sendFile('./views/movie.html', { root: __dirname })
})
router.get('/about', (req, res) => {
res.sendFile('./views/about.html', { root: __dirname })
})
module.exports = router
修改之后的服务器页面
const express = require('express')
const app = express()
// 将路由对象的js文件 导入
const router = require(将路由对象的js文件)
app.use(router) //注册路由中间件
app.listen(3000, () => {
console.log('server running at http://127.0.0.1:3000')
})
中间件
1. 处理函数 三个处理参数 req res next
2. 中间件的分类
1. 应用级别中间件 app.
2. 路由级别中间件 express.Router().
3. 唯一内置中间件 express.static('托管的目录')
4. 错误中间件 err req res next
5. 第三方中间件
数据库
1. 安装数据库 cnpm i mysql -S
2. //导入数据库模块
const mysql = require('mysql)
//创建数据库连接对象返回一个数据库连接对象
const con = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'root',
database: '数据库名称'
})
//connection 使用该连接对象 做数据库的增删改查 CRUD
con.query(sql语句,[传递的数据](err,result)=>{})
3. sql语句
R查询 - select * from 数据表(users)
C新增 - insert into 数据表 set ? 前提得去 定义新增的数据
U修改 - update 数据表 set ? where id = ?
D删除 - delete from 数据表 where id = ?
con.query 中参数- 是sql语句 ; 参数二 数据; 参数三 回调函数
sql语句中出现的? 一定要和 query 的第二个参数对应一致 多个问号出现的时候,将数据方式在数组中,放置的位置 一定和 sql语句中的 ? 一一对应
操作数据库数据的时候 来回传递的字段,一定和数据表中一致
|
|