分页、渲染、读取静态资源.

### 分页

![20250309163834](/up-z0.qiniup.com20250309163834.png)

```js

import {Arrays} from '../Db/BooksDb.js'

const list = async (ctx,next)=>{

    // 转换为数字类型

    const page = parseInt(ctx.query.pageIndex) || 1

    const size = parseInt(ctx.query.pageSize)  || 10

    // 计算分页数据

    const start = (page -1)*size

    const end = start + size

    // 获取分页数据

    const pagedata = Arrays.slice(start,end)

    ctx.render('BooksList.html',{

        books:pagedata,

        pageIndex:page,

        pageSize:size,

        totalBooks:Arrays.length,  // 全部书本数量

        totalPages:Math.ceil(Arrays.length / size)   //总页数

    })

}

```

```html

     

     

```


 

#### 笔记

- **文件类型限制**:目前仅设置了`Content-Type`为`text/css`,仅适用于CSS文件。如果需要支持其他静态资源(如图片、JavaScript文件等),需要根据文件扩展名动态设置`Content-Type`。


 

1. 读取静态文件内容

```javascript

let uu = fs.readFileSync(`./${url}`,'utf8');

```

- 指定文件编码为`utf8`,将文件内容以字符串形式返回。


 

2. 设置响应头并返回内容

```javascript

ctx.set('Content-Type','text/css');

ctx.body = uu;

```

- 使用`ctx.set`方法设置响应头`Content-Type`为`text/css`,表示返回的内容是CSS样式表。

- 将读取到的文件内容赋值给`ctx.body`,作为响应体返回给客户端。






 

你可能感兴趣的:(node.js)