博客
关于我
用express搭的一个静态资源服务器
阅读量:369 次
发布时间:2019-03-04

本文共 2229 字,大约阅读时间需要 7 分钟。

用Express搭建一个静态资源服务器

在前言中,我们提到了使用Express框架搭建一个静态资源服务器。以下是详细的实现过程,从服务器的创建到数据库的连接,再到路由的配置,最后是如何处理数据请求。

第一部分:服务器的创建

我们从创建一个Express服务器开始。在server.js文件中,我们导入了Express模块,并创建了一个新的Express应用实例。

const express = require("express");let app = express();let allRouter = require("./router/index");app.use(express.static("./"));app.use(allRouter);app.listen(2000, () => {    console.log("服务器开启");});

这里,我们使用了express.static("./")来配置静态资源服务器,使得静态资源文件(如图片、CSS、JavaScript)能够被顺利访问。此外,我们还加载了路由模块allRouter,即将路由逻辑挂载到服务器上。

第二部分:路由的配置

接下来,我们来看路由的配置。在router/index.js文件中,我们创建了一个路由器,并导入了主路由模块home

const express = require("express");let router = express.Router();let home = require("./home");router.use("/home", home);module.exports = router;

这里的router.use("/home", home)意味着当访问服务器的/home路径时,会加载home路由器的逻辑。接下来,我们来看home.js文件中的具体实现。

第三部分:数据请求的处理

router/home.js中,我们创建了一个路由器,并定义了一个GET请求,用于测试数据的获取。

const express = require("express");const bodyParser = require("body-parser");let query = require("../db/index");let urlencodedParser = bodyParser.urlencoded({    extended: false});let router = express.Router();router.get("/testData", async (req, res, next) => {    try {        var data = await query("SELECT * FROM listdata");    } catch (err) {        console.log(err);    }    let result = "";    if (data.length) {        result = {            msg: "success",            data        };    } else {        result = {            msg: "err"        };    }    res.send(result);});module.exports = router;

这里,我们使用了body-parser来解析URL编码的请求体,并定义了一个GET请求/testData,用于从数据库中获取数据。需要注意的是,我们使用了异步/await语法来处理数据库查询。

第四部分:数据库的连接与查询

db/index.js文件中,我们创建了一个MySQL连接池,并定义了一个查询函数。

const mysql = require("mysql");let pool = mysql.createPool({    host: "localhost",    port: "3306",    user: "root",    password: "",    database: "xfc",    multipleStatements: true});let query = function (sql) {    return new Promise((resolve, reject) => {        pool.query(sql, (err, data) => {            if (err) {                reject(err);            } else {                resolve(data);            }        });    });};module.exports = query;

这里,我们创建了一个连接池,确保了数据库连接的高效管理。query函数允许我们通过 Promise 来处理数据库查询,支持异步/await语法。

总体而言,通过以上步骤,我们成功地搭建了一个Express静态资源服务器,并配置了路由和数据库连接。接下来,你可以根据实际项目需求,继续添加更多的路由和功能模块。

转载地址:http://heug.baihongyu.com/

你可能感兴趣的文章
Objective-C实现lowest common ancestor最低共同祖先算法(附完整源码)
查看>>
Objective-C实现LRU 缓存算法(附完整源码)
查看>>
Objective-C实现LRU缓存(附完整源码)
查看>>
Objective-C实现LRU(least recently used)算法(附完整源码)
查看>>
Objective-C实现lstm prediction预测算法(附完整源码)
查看>>
Objective-C实现lucas数列算法(附完整源码)
查看>>
Objective-C实现Luhn (Mod 10)Algorithm算法(附完整源码)
查看>>
Objective-C实现LZW编码(附完整源码)
查看>>
Objective-C实现MAC桌面暗水印(附完整源码)
查看>>
Objective-C实现mandelbrot曼德勃罗特集算法(附完整源码)
查看>>
Objective-C实现markov chain马尔可夫链算法(附完整源码)
查看>>
Objective-C实现MATLAB中Filter函数功能(附完整源码)
查看>>
Objective-C实现matrix chainorder矩阵链顺序算法(附完整源码)
查看>>
Objective-C实现matrix exponentiation矩阵求幂算法(附完整源码)
查看>>
Objective-C实现MatrixMultiplication矩阵乘法算法 (附完整源码)
查看>>
Objective-C实现max non adjacent sum最大非相邻和算法(附完整源码)
查看>>
Objective-C实现max subarray sum最大子数组和算法(附完整源码)
查看>>
Objective-C实现max sum sliding window最大和滑动窗口算法(附完整源码)
查看>>
Objective-C实现MaxHeap最大堆算法(附完整源码)
查看>>
Objective-C实现MaximumSubarray最大子阵列(Brute Force蛮力解决方案)算法(附完整源码)
查看>>