目录

nodejs搭建静态资源服务器

Express框架

01-express基本使用

02-express响应客户端数据

03-express托管静态资源

04-express中间件使用

图书管理后台

项目介绍


nodejs搭建静态资源服务器

步骤

1.导入模块.必选http,fs,可选path

2.创建服务器.利用http模块createServer方法创建服务器

3.启动服务器.利用http模块listen方法启动服务

注意:

1.html中所有的外部链接hrefsrc),都会变成网络请求,比如外链css,js,图片音视频

2.可以使用字符串startsWith方法判断是否在同一目录下,在同一目录下的文件数据可以统一使用模板字符串,作为fs.readfile地址,避免写多个分支if else

 fs.readFile(`${__dirname}/www${req.url}`, (err, data) => {

            if (err) {

                throw err

            } else {

                res.end(data)

            }

        })


/*
1.html中所有的外部链接hrefsrc),都会变成网络请求
*/

// 1导入模块
const http = require('http')
const fs = require('fs')
// 2创建服务const app = http.createServer((req, res) => {
    // (1)req请求报文
    console.log(req.url);
    // (2)处理数据
    if (req.url === '/') {
        // (3)res响应报文
        fs.readFile(`${__dirname}/www/index.html`, (err, data) => {
            if (err) {
                throw err
            } else {
                res.end(data)
            }
        })
    }
    else if (req.url.startsWith('/resource')) {
        fs.readFile(`${__dirname}/www${req.url}`, (err, data) => {
            if (err) {
                throw err
            } else {
                res.end(data)
            }
        })
    }
    else {
        res.end('404 NOT FOUND')
    }
})
// 3启动服务器
app.listen(3002, () => {
    console.log('服务器开启成功')
})

Express框架

Express是NodeJS开发一个非常重量级的第三方框架,它对于NodeJS服务端就相当于Jquery对于HTML客户端

官网链接   中文官网

Express :基于 Node.js 平台快速开放、极简的 web 开发框架

Express三大核心功能

1.托管静态资源

nodejs实现静态服务器功能express中只需要一行代码

2.路由

express自带路由功能,让Node服务端开发变得极其简单

express支持链式语法可以代码看起来更加简洁

==3.中间件==

Express最为核心技术和思想,万物皆中间件

中间件虽然理解起来有点困难,但是使用起来非常方便,类似于bootstrap插件.

01-express基本使用

1.给npm下载加速包  淘宝镜像
npm config set registry https://registry.npm.taobao.org/
2.下载express
npm i express

// 1.导入express模块

const express = require('express')

// 2.创建服务器
const app = express()

//3.路由接口文档):一个请求路径对应一个处理函数
app.get(("/"), (req, res) => {
    console.log(1);
})
app.get(("/login"), (req, res) => {
    console.log('2')
    
})
// 3.开启服务器
app.listen(3000, () => {
    console.log('服务器启动成功')
})

02-express响应客户端数据

注意:

1.

非文件数据:res.send(数据)

文件数据:res.sendFile(文件绝对路径)



//1.导入模块
const express = require('express')
//2.创建服务器
let app = express()
// 3.写路由

/*
非文件数据:res.send(数据)
文件数据:res.sendFile(文件绝对路径)
*/
app.get('/', (req, res) => {
    // 响应中文:express自动
    res.send('我是首页')
    // node.js原生,中文乱码
    // res.end('我是首页')
})
app.get('/list', (req, res) => {
    let obj = {
        data: [10, 20, 30],
        code: 200,
        message: '请求列表成功'
    }

    //响应json数据
    res.send(obj)

    // 原生nodejs:只能识别字符串+二进制。如果是对象需要先转json
    // res.end(JSON.stringify(obj))


})
app.get('/login', (req, res) => {
    // 响应网页  自动我们读取文件并且响应
    res.sendFile(`${__dirname}/login.html`)
})


//3.开启服务器
app.listen(3000, () => {
    console.log('success')
})

03-express托管静态资源

注意:

托管静态资源(相当于我们之前写的静态资源服务器)

1.当请求路径为/时,express会自动读取www文件夹中的index.html文件响应返回

2.当路径请求为www文件夹中的静态资源,express会自动拼接文件路径并响应返回

app.use(express.static(‘www’))//www是文件夹名

//1.导入模块
const express = require('express')
//2.创建服务器
let app = express()

//托管静态资源(相当于我们之前写的静态资源服务器)
/*
1.当请求路径为/时,express会自动读取www文件夹中的index.html文件响应返回
2.当路径请求为www文件夹中的静态资源,express会自动拼接文件路径并响应返回
*/

app.use(express.static('www'))
//3.开启服务器
app.listen(3000, () => {
    console.log('success')
})

04-express中间件使用

get参数:req.query

post参数:req.body

*借助第三方中间件:bodyparser

*(1)下载:npm i bodyparser

*(2)导入:const bodyParser =require(‘bodyparser‘)

*(3)使用: app.use(bodyParser.urlencoded({extended:false}))

*(3)使用:app.use(bodyParser.json())

/*
get参数:req.query
post参数:req.body
*借助第三方中间件:body-parser
*(1)下载:npm i body-parser
*(2)导入:const bodyParser =require('body-parser')
*(3)使用: app.use(bodyParser.urlencoded({extended:false}))
*(3)使用:app.use(bodyParser.json())
*/


//1.导入模块
const express = require('express')
//2.创建服务器
let app = express()

//(1) 使用中间件
const bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))// 表单请求头
// (2)解析json参数
app.use(bodyParser.json())//json请求头
// 写路由
app.get('/list', (req, res) => {
    //(1)req:请求报文
    console.log(req.url)
    //获取get参数自动对url进行切割处理然后参数放入 query对象中
    console.log(req.query)
    //(2)处理
    //(3)res:响应报文
    res.send(req.query)
})

app.post('/add', (req, res) => {
    console.log(req.body)
    // 告诉客户收到参数
    res.send(req.body)
})

//3.开启服务器
app.listen(3000, () => {
    console.log('success')
})

图书管理后台

项目介绍

 1.了解Express搭建服务端项目流程
  – a.导入express
  – b.创建服务器
  – c.配置中间件
  – d.路由
  – e.开启服务器
2.了解服务端路由处理流程(路由:其实就是前端接口文档
  – 请求 : 获取客户发送过来的参数
  – 处理: 增删改查数据库
  – 响应 :将数据库操作结果返回给客户

//1.导入模块
const express = require('express')
//2.创建服务器
let app = express()
// 3.托管静态资源
app.use(express.static('www'))
// 4.配置中间件
// (1)导入模块
const bodyParser = require('body-parser')
// (2)使用中间件
app.use(bodyParser.urlencoded({ extended: false }))// 表单请求头
app.use(bodyParser.json())//json请求头
// 数据库中间件                                                      
const book = require(`./data/book.js`)
// 5写路由
// 5.1查询图书列表
app.get('/api/getbooks', (req, res) => {

    book.getbooks((err, data) => {
        if (err) {//服务器数据库错误
            res.send({
                code: 500,
                msg: '服务器内部错误'
            })
        } else {//成功
            res.send({
                code: 201,
                msg: "请求成功",
                data: data.books
            })
        }
    })
})
// 5.2新增图书
app.post('/api/addbook', (req, res) => {

    book.addbook(req.body, (err) => {
        if (err) {//服务器数据库错误
            res.send({
                code: 500,
                msg: '服务器内部错误'
            })
        } else {//成功
            res.send({
                code: 201,
                msg: "新增图书成功",
            })
        }
    })
})
// 5.3删除图书
app.get('/api/delbook', (req, res) => {

    book.delete(req.query.id
        , (err) => {
            if (err) {//服务器数据库错误
                res.send({
                    code: 500,
                    msg: '服务器内部错误'
                })
            } else {//成功
                res.send({
                    code: 201,
                    msg: "删除图书成功",
                })
            }
        })
})
//3.开启服务器
app.listen(3000, () => {
    console.log('success')
})

原文地址:https://blog.csdn.net/wusandaofwy/article/details/126740109

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25516.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注