Node :express路由级别路由配置

需求:使用express的router,根据自己项目需求分出多个模块,建立不同名称的文件来管理不同的路由请求,避免基础路由配置造成的文件杂乱、不易维护的缺点。

一、准备工作

假设电脑中已经安装了node,配置好了node的相关环境。
1.新建一个文件夹(名字为app即可)。注意:名字不要和安装的依赖冲突,如: express等。
2.命令行切换到第一步新建的文件夹目录下。
3.执行 npm init –y, 创建一个 package.json 文件。
4.执行 npm install express ,创建一个 node_modules文件夹。
5. 在app文件夹下创建一个views文件夹,下面用来存放各个页面(如index.html、login.html)
6. 在app文件夹下创建一个public文件夹,下面用来存放静态资源(如css、js、img等)
7. 在app文件夹下创建一个router文件夹,用来存放处理各网页的路由(如:index.js、login.js)
8. 在app文件夹下创建一个app.js文件,用来处理静态资源和配置路由。

前八步上面创建的目录如下:
在这里插入图片描述

二、代码中相关配置

1、app.js文件

1.1 app.js中静态资源配置:
app.use(express.static(path.join(__dirname, "public")));

注:__dirname是根目录,当配置完静态资源默认路径后,views中的html文件需要引入静态资源时,只用从public下子目录开始引用即可(如: )。

1.2 app.js中路由配置:
// 配置路由
let indexRouter = require("./router/index");
let loginRouter = require("./router/login");
let productRouter = require("./router/product");

app.use("/", indexRouter);
app.use("/login", loginRouter);
app.use("/product", productRouter);

当配置完路由后,各页面的切换只需在浏览器的地址栏中输入“localhost:3000/login”即可。

1.3完整的app.js文件:
let express = require("express");
let path = require("path");
let app = express();

// 静态资源处理
app.use(express.static(path.join(__dirname, "public")));

// 配置路由
let indexRouter = require("./router/index");
let loginRouter = require("./router/login");
let productRouter = require("./router/product");

app.use("/", indexRouter);
app.use("/login", loginRouter);
app.use("/product", productRouter);

app.listen(3000, () => {
    console.log('服务器已启动');//监听3000端口
})

2、各页面的路由
index.js:

let express = require("express");
let fs = require("fs");
let router = express.Router();

router.get('/', (req,res ) => {
    let htmlCont = fs.readFileSync("./views/index.html");//使用同步方法读取文件
    res.write(htmlCont);//将读取的内容写入请求的页面中
    res.end();
})
module.exports = router;//导出当前模块

login.js

let express = require("express");
let fs = require("fs");
let router = express.Router();

router.get('/', (req,res) => {
    let htmlCont = fs.readFileSync("./views/login.html");
    res.write(htmlCont);
    res.end();
})
router.route("/").get((req,res) => {
    let htmlCont = fs.readFileSync("./views/login.html");
    res.write(htmlCont);
    res.end();
}).post((req,res) => {
    res.set("content-type", "text/html;charset=utf-8");
    res.end("登录成功")
})
module.exports = router;

三、运行文件

1.切换到app.js的目录下,使用node app或者node app.js指令运行该文件,在本地启动服务器。
在这里插入图片描述在这里插入图片描述
当服务器启动后,进行第二步。

2.在浏览器地址栏输入:
localhost:3000/login或者localhost:3000或者localhost:3000/product测试。
3.运行结果如下:
首页测试在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值