A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 南麓。 初级黑马   /  2019-6-27 13:53  /  934 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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语句中的 ? 一一对应
       操作数据库数据的时候  来回传递的字段,一定和数据表中一致  
   












0 个回复

您需要登录后才可以回帖 登录 | 加入黑马