注意:后续技术分享,第一时间更新,以及更多更及时的技术资讯和学习技术资料,将在公众号CTO Plus发布,请关注公众号:CTO Plus
Node.js系列文章推荐阅读:
- JavaScript匿名函数的定义、特性、作用和使用场景详解
- Node.js之正则表达式的使用方法详解和实战
- Node.js测试之benchmark基准测试详解和代码示例
- Node.js重点概念之作用域、闭包、this的使用详解和代码示例
- Node.js开发框架Express.js做一个简单的Web应用以及代码详解
- Node.js高并发编程之promise的基本使用、作用和特点详细介绍以及代码示例
- Node.js数据库开发之Mongodb 与 Mongoose 的使用和详细介绍
- Node.js基础之require、exports、module构建模块的基本属性详细介绍
- Node.js并发编程eventproxy详解与代码示例
- Node.js之10个JavaScript的最佳实践技能点(1)
- Node.js的热门框架:Midway.js特点、应用场景和使用方法介绍
- Node.js的热门框架:Nest.js特性、常用功能和代码示例介绍以及与Midway.js的对比分析
- JavaScript箭头函数的基本使用和高级使用方法详解
- 开源项目 | 最热门高效的Node.JS开源第三方开发库和特点(持续更新......)
- 前端开发技术栈(工具篇):2023最新版nvm的Win/Linux安装和使用(详细) 27.8k stars
- 弄清楚Node.js的功能特性、运行时、组成和发展趋势分析以及与JavaScript的区别
- 学习Node.js的9大理由以及日常开发中的14个高级特性和代码示例分享
- Node.js基本概念、特点、用途和常用模块,以及Express框架开发一个web应用
在本文中,我们将深入了解如何使用外部模块来增强我们的Node.js应用程序。我们安装了express Web框架模块、utility工具模块,以及request请求模块。其中,示例1当用户输入URL查询参数时,我们获取GET请求的参数并计算参数的MD5值返回给浏览器。示例2将使用一个名为`request`的模块来发出HTTP请求。这只是Node.js外部模块的一个入门级别的例子,但它提供了一个很好的起点,可以帮助你开始构建更复杂的应用程序。让我们开始吧!
package.json文件介绍
此处先介绍一下 package.json 这个文件的用法和作用,npm 是 Node.js 的包管理器,用于管理 Node.js 的模块和依赖项。在使用 npm 安装模块时,npm 会自动创建一个名为 "package.json" 的文件,定义了项目的各种元信息,用于描述当前项目的信息和依赖项,包括项目的名称,git repo 的地址,作者等,也便于其他开发人员和工具了解项目的信息和依赖项。如果没有 "package.json" 文件,npm 将无法正确管理模块和依赖项。有了这个文件,这个项目在部署时,我们就不必将 `node_modules` 目录也上传到服务器,服务器在拿到我们的项目时,只需要执行 `npm install`,则 npm 会自动读取 package.json 中的依赖并安装在项目的 `node_modules` 下面,然后程序就可以在服务器上跑起来了。
npm init 命令用于初始化一个新的 "package.json" 文件。当执行 npm init 命令时,npm 会提示用户输入一些项目信息,如项目名称、版本号、作者、许可证等。用户可以根据需要选择是否输入这些信息。如果用户不输入任何信息,npm 将使用默认值创建一个 "package.json" 文件。
"package.json" 文件还可以用于定义项目的脚本命令,以便于执行一些常见的任务,如启动应用程序、运行测试等。
我们新建一个pro2的目录,并在目录下执行:npm init 命令
`npm init` 这个命令的作用就是帮我们互动式地生成一份最简单的 package.json 文件,`init` 是 `initialize` 的意思,初始化。
这时会要求我们输入一些信息,根据自己情况填就可以了,也可以不填,使用默认值即可。执行完后,目录下就会有个 package.json 文件,如下所示
"package.json" 文件是一个 JSON 格式的文件,包含了项目的元数据和依赖项信息。以下是 "package.json" 文件的一些常见属性:
- name:项目的名称。
- version:项目的版本号。
- description:项目的描述。
- main:项目的入口文件。
- scripts:定义了一些脚本命令,如 "start"、"test" 等。
- dependencies:项目的依赖项。
- devDependencies:项目的开发依赖项。
- author:项目的作者信息。
- license:项目的许可证信息。
示例1:使用工具模块计算md5值
安装外部依赖 `express` 和 `utility` 两个模块
命令行下输入:npm install express utility --save
此处的指令没有指定 registry,没有指定的情况下,默认从 npm 官方安装。`--save`参数,这个参数的作用,就是会在你安装依赖的同时,自动把这些依赖写入 package.json。命令执行完成之后,查看 package.json,会发现多了一个 `dependencies` 字段,如下图:
这时查看 `node_modules` 目录,会发现有两个文件夹,分别是 express 和 utility
建立一个 ` index.js ` 文件:
// 引入依赖
var express = require('express');
var utility = require('utility');
// 实例化express
var app = express();
app.get('/', (req,res)=>{
// 从 req.query 中取出 q 参数。
var query = req.query.q;
// 调用 utility.md5 方法,得到 md5 之后的值
var md5Value = utility.md5(query);
res.send(md5Value);
});
const PORT = 3000;
app.listen(PORT, (req,res)=>{
console.log(`Example app listening on port 3000! http://localhost:${PORT}`);
});
启动服务,访问 `http://localhost:3000/?q=steverocket`,输出查询参数的md5值
如果直接访问 `http://localhost:3000/` 会抛错
可以看到,这个错误是从 `crypto.js` 中抛出的。
这是因为,当我们不传入 `q` 参数时,`req.query.q` 取到的值是 `undefined`,`utility.md5` 直接使用了这个空值,导致下层的 `crypto` 抛错。
示例2:使用请求模块请求数据
使用外部依赖模块之前,必须使用npm进行安装,如果不使用npm进行安装直接使用的话,则会报如下异常信息
所以,我们需要安装request请求模块。可以使用npm(Node.js包管理器)来安装请求模块。打开终端并运行以下命令:
npm install request
这将安装最新版本的请求模块。
接下来,我们在上一个示例的代码基础之上,新增一个get_data的接口,将使用请求模块来发出HTTP请求。在项目的根目录中,创建一个名为`app.js`的文件,并添加以下内容:
const request = require('request');
app.get('/get_data', (req,res)=>{
var query = req.query.q;
request(query, (error, response, body) => {
if(!error && response.statusCode === 200){
console.log(body);
res.send(body);
}
});
});
浏览器中输入:http://localhost:3000/get_data?q=https://jsonplaceholder.typicode.com/posts
在这个代码中,我们首先引入了请求模块,并根据用户输入的查询参数q来请求目标的网址获取数据,使用`request()`方法来发出HTTP请求。第一个参数是请求的URL。第二个参数是一个回调函数,它将在请求完成时被调用。在这个例子中,我们简单地将响应主体打印到控制台上,以及将响应的数据返回给浏览器。
Node.js专栏:https://blog.csdn.net/zhouruifu2015/category_6080879.html
更多资料 · 微信公众号搜索:CTO Plus 关注后,获取更多,我们一起学习交流。
关于公众号的描述访问如下链接