基于node.js开发的文章生成器(六、网页版本的文章生成器--工整优化篇)

简介: # 引言前面我们已经学完了基于express框架下服务器的启动,get请求的接收与处理还有post请求的接收与处理。同时我们使用接口测试工具完成了接口的测试,响应值和接受值返回值都是正常的。那么为什么还有这一章节呢?# 问题的提出原来我们之前对于get请求和Post请求的接受与处理,虽然可以实现其功能,但是整体代码都是写在一个js文件中的,这就导致我们js文件很臃肿,很难看,维护和开发成本都会大大的提高。那么我们有没有一种方法,让我们的代码工整性和复用性都大大提高呢?# 解决的思路我的解决方案是:抽成模块,进行模块化开发。# 实例还是拿我们之前的cs.js作为讲解。

引言

前面我们已经学完了基于express框架下服务器的启动,get请求的接收与处理还有post请求的接收与处理。同时我们使用接口测试工具完成了接口的测试,响应值和接受值返回值都是正常的。那么为什么还有这一章节呢?

问题的提出

原来我们之前对于get请求和Post请求的接受与处理,虽然可以实现其功能,但是整体代码都是写在一个js文件中的,这就导致我们js文件很臃肿,很难看,维护和开发成本都会大大的提高。

那么我们有没有一种方法,让我们的代码工整性和复用性都大大提高呢?

解决的思路

我的解决方案是:抽成模块,进行模块化开发。

实例

还是拿我们之前的cs.js作为讲解。

原本的cs.js中的代码

import express from 'express';

const app = express();
app.use(express.urlencoded({extended:false}));
app.get('/getmethod',(req,resp)=>{
    console.log('get')
    resp.send("这是一个get请求");
})

app.post('/postmethod',(req,resp)=>{
    console.log('post')
    resp.send("这是一个post请求");
})

app.post('/postcs',(req,resp)=>{
    const result = req.body;
    console.log(result);
    resp.send('成功了');
})

app.listen(6666,()=>{
    console.log('serve is running at http://localhost:6666');
})

当然上面我们的代码还是不够多,当一个复杂的业务出现时,如果把所有的请求都挂在一个js文件中,就会导致文件变得非常臃肿。而且代码的复用性很差。

这里我们采取模块化的开发方法。

在目录下创建 router文件夹和router_handle这两个文件夹。

接下来我们利用到下面几个知识点完成模块的抽出

Router

express中的Router作用就是为了方便我们更好的根据路由去分模块。避免将所有路由都写在入口文件中。

使用之前我们通过const router = express.Router();完成创建router

router文件夹

我们在router文件夹下创建ceshi.js文件,然后首先导入'express'模块

import express from 'express';
const router = express.Router();

...//暂时省略的部分

export default router;

完成上述代码后,我们就已经成功将router下的ceshi.js抽成了一个module并导出了。

router_handle文件夹

该目录下同样创建一个ceshi.js,这里用来写代码层面上的真正的功能上的实现。

function postMethod(req,resp){
    const result = req.body;
    console.log(result.ceshi);
    resp.send('post method success');
}
export {postMethod};

最后的整合及测试

router和router_handle的整合

接下来我们来整合router文件夹和router_handle文件夹,上面说过,中间router文件夹中省略了一部分代码,省略的这部分代码就是import router_handle中的实现的代码 并use上。

import express from 'express';
const router = express.Router();

import {postMethod} from '../router_handle/ceshi.js';

router.post('/postMethodCeshi',postMethod);

export default router;

上述就是router目录下的ceshi.js全部代码,先是常规的 ES Moudle标准的导入所需的模块,然后创建router,然后导入写好的实现文件---即:router_handle目录下的ceshi.js文件。

接下来将引入的router_handle挂载到router.post()下,最后作为modle导出。

整合到cs.js中使用

上面说到,这次我们的主入口是cs.js文件,接下来我们要在cs.js中使用这个模块。

import express from 'express';

import router from './router/ceshi.js'
const app = express();
app.use(express.urlencoded({extended:false}));

app.use(router);

app.listen(6666,()=>{
    console.log('serve is running at http://localhost:6666');
})

接下来我们打开接口测试工具,按照之前测试接口,发现没有问题。优化完成。

相关文章
|
17天前
|
Web App开发 JavaScript 前端开发
Node.js开发
Node.js开发
32 13
|
23天前
|
存储 JavaScript 前端开发
深入浅出Node.js后端开发
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将以Node.js为例,深入探讨其背后的哲学思想、核心特性以及在实际项目中的应用,旨在为读者揭示Node.js如何优雅地处理高并发请求,并通过实践案例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和思考。
|
20天前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
本文将带你领略Node.js的魅力,从基础概念到实践应用,一步步深入理解并掌握Node.js在后端开发中的运用。我们将通过实例学习如何搭建一个基本的Web服务,探讨Node.js的事件驱动和非阻塞I/O模型,以及如何利用其强大的生态系统进行高效的后端开发。无论你是前端开发者还是后端新手,这篇文章都会为你打开一扇通往全栈开发的大门。
|
23天前
|
Web App开发 开发框架 JavaScript
深入浅出Node.js后端开发
在这篇文章中,我们将一起探索Node.js的奇妙世界。无论你是刚接触后端开发的新手,还是希望深化理解的老手,这篇文章都适合你。我们将从基础概念开始,逐步深入到实际应用,最后通过一个代码示例来巩固所学知识。让我们一起开启这段旅程吧!
|
19天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带领读者从零基础开始,一步步深入到Node.js后端开发的精髓。我们将通过通俗易懂的语言和实际代码示例,探索Node.js的强大功能及其在现代Web开发中的应用。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的见解和技巧,让你的后端开发技能更上一层楼。
|
23天前
|
JavaScript 前端开发 API
深入理解Node.js事件循环及其在后端开发中的应用
本文旨在揭示Node.js的核心特性之一——事件循环,并探讨其对后端开发实践的深远影响。通过剖析事件循环的工作原理和关键组件,我们不仅能够更好地理解Node.js的非阻塞I/O模型,还能学会如何优化我们的后端应用以提高性能和响应能力。文章将结合实例分析事件循环在处理大量并发请求时的优势,以及如何避免常见的编程陷阱,从而为读者提供从理论到实践的全面指导。
|
24天前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端开发
本文将带你走进Node.js的世界,从基础到进阶,逐步解析Node.js在后端开发中的应用。我们将通过实例来理解Node.js的异步特性、事件驱动模型以及如何利用它处理高并发请求。此外,文章还会介绍如何搭建一个基本的Node.js服务器,并探讨如何利用现代前端框架与Node.js进行交互,实现全栈式开发。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和深入的理解。
17 4
|
29天前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
25 1
JavaScript中的原型 保姆级文章一文搞懂
下一篇
DataWorks