day5:Node.js 第三方库

这篇具有很好参考价值的文章主要介绍了day5:Node.js 第三方库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

day5:Node.js 第三方库

使用 Express.js 构建 Web 应用

Express框架是Node.js生态系统中的一种流行的Web应用程序框架。其核心功能主要包括以下几个方面:

  1. 路由:Express提供了一种方便的方式来定义路由,使得开发人员可以基于不同的HTTP方法(如GET、POST等)和URL来定义处理请求的函数。
  2. 中间件:这是Express框架的另一个核心特性,用于在请求到达路由处理函数之前或之后执行一些操作。这些操作可以包括日志记录、身份验证、压缩响应等。
  3. 模板渲染:Express框架支持将动态数据与模板结合,生成并返回最终的HTML页面。这一特性使得开发人员可以更方便地构建和管理Web应用程序。
安装 Express

安装 Express 并将其保存到依赖列表中:

[root@node3 nodejs]# cnpm install express --save

以上命令会将 Express 框架安装在当前目录的 node_modules 目录中, node_modules 目录下会自动创建 express 目录。以下几个重要的模块是需要与 express 框架一起安装的:

  • body-parser - node.js 中间件,用于处理 JSON, Raw, Text 和 URL 编码的数据。
  • cookie-parser - 这就是一个解析Cookie的工具。通过req.cookies可以取到传过来的cookie,并把它们转成对象。
  • multer - node.js 中间件,用于处理 enctype=“multipart/form-data”(设置表单的MIME编码)的表单数据。
[root@node3 nodejs]# cnpm install body-parser --save
[root@node3 nodejs]# cnpm install cookie-parser --save
[root@node3 nodejs]# cnpm install multer --save

安装完后,我们可以查看下 express 使用的版本号:

[root@node3 nodejs]# cnpm list express
helloworld@1.0.0 /root/nodejs
└── express@4.18.2 -> ./node_modules/.store/express@4.18.2/node_modules/express

[root@node3 nodejs]# cnpm list
helloworld@1.0.0 /root/nodejs
├── accepts@1.3.8 extraneous
├── array-flatten@1.1.1 extraneous
├── body-parser@1.20.2 -> ./node_modules/.store/body-parser@1.20.2/node_modules/body-parser
├── bytes@3.1.2 extraneous
├── call-bind@1.0.2 extraneous
├── content-disposition@0.5.4 extraneous
├── content-type@1.0.5 extraneous
├── cookie-parser@1.4.6 -> ./node_modules/.store/cookie-parser@1.4.6/node_modules/cookie-parser
├── cookie-signature@1.0.6 extraneous
├── cookie@0.5.0 extraneous
├── debug@2.6.9 extraneous
├── depd@2.0.0 extraneous
├── destroy@1.2.0 extraneous
├── ee-first@1.1.1 extraneous
├── encodeurl@1.0.2 extraneous
├── escape-html@1.0.3 extraneous
├── etag@1.8.1 extraneous
├── express@4.18.2 -> ./node_modules/.store/express@4.18.2/node_modules/express
├── finalhandler@1.2.0 extraneous
├── forwarded@0.2.0 extraneous
├── fresh@0.5.2 extraneous
├── function-bind@1.1.1 extraneous
├── get-intrinsic@1.2.1 extraneous
├── has-proto@1.0.1 extraneous
├── has-symbols@1.0.3 extraneous
├── has@1.0.4 extraneous
├── http-errors@2.0.0 extraneous
├── iconv-lite@0.4.24 extraneous
├── ipaddr.js@1.9.1 extraneous
├── media-typer@0.3.0 extraneous
├── merge-descriptors@1.0.1 extraneous
├── methods@1.1.2 extraneous
├── mime-db@1.52.0 extraneous
├── mime-types@2.1.35 extraneous
├── mime@1.6.0 extraneous
├── ms@2.0.0 extraneous
├── multer@1.4.5-lts.1 -> ./node_modules/.store/multer@1.4.5-lts.1/node_modules/multer
├── mysql@2.18.1
├── negotiator@0.6.3 extraneous
├── object-inspect@1.12.3 extraneous
├── on-finished@2.4.1 extraneous
├── parseurl@1.3.3 extraneous
├── path-to-regexp@0.1.7 extraneous
├── proxy-addr@2.0.7 extraneous
├── qs@6.11.0 extraneous
├── range-parser@1.2.1 extraneous
├── raw-body@2.5.1 extraneous
├── safe-buffer@5.2.1 extraneous
├── safer-buffer@2.1.2 extraneous
├── send@0.18.0 extraneous
├── serve-static@1.15.0 extraneous
├── setprototypeof@1.2.0 extraneous
├── side-channel@1.0.4 extraneous
├── statuses@2.0.1 extraneous
├── toidentifier@1.0.1 extraneous
├── type-is@1.6.18 extraneous
├── unpipe@1.0.0 extraneous
├── utils-merge@1.0.1 extraneous
└── vary@1.1.2 extraneous

第一个 Express 框架实例

创建 express_demo.js 文件,代码如下所示:

const express = require('express');  
const app = express();  
app.use(express.json()); // 支持JSON格式的请求体  
  
// 定义一个用户路由  
app.get('/users', (req, res) => {  
  // 处理获取用户列表的请求  
  const users = [  
    { id: 1, name: 'Alice' },  
    { id: 2, name: 'Bob' },  
    { id: 3, name: 'Charlie' },  
  ];  
  res.json(users);  
});  
  
app.get('/users/:id', (req, res) => {  
  // 处理获取特定用户信息的请求  
  const userId = req.params.id;  
  const user = { id: userId, name: `User ${userId}` };  
  res.json(user);  
});  
  
app.post('/users', (req, res) => {  
  // 处理创建新用户的请求  
  const newUser = req.body;  
  // 在这里执行保存用户到数据库等操作  
  res.status(201).json({ message: 'User created successfully.' });  
});  
  
// 启动应用程序监听端口  
app.listen(3000, () => {  
  console.log('API接口已启动,监听端口3000...');  
});

执行以上代码:

$ node express_demo.js 
应用实例,访问地址为 API接口已启动,监听端口3000...

在浏览器中访问 http://127.0.0.1:3000,结果如下图所示:

day5:Node.js 第三方库,Node js 入门教程,node.js,node js入门教程,nodejs菜鸟教程

第二个 Express 框架实例

创建 logger.js 文件,代码如下所示:

const express = require('express');  
const app = express();  
  
// 定义一个简单的中间件  
const loggerMiddleware = (req, res, next) => {  
  console.log(`Request URL: ${req.url}`);  
  next(); // 调用next函数以继续处理链  
};  
  
// 将中间件应用到应用程序中  
app.use(loggerMiddleware);  
  
// 定义一个路由  
app.get('/', (req, res) => {  
  res.send('Hello, World!');  
});  
  
// 启动应用程序监听端口  
app.listen(3001, () => {  
  console.log('应用程序已启动,监听端口3001...');  
});

在上面的示例中,我们定义了一个简单的中间件loggerMiddleware,它在每个请求被处理之前记录请求的URL。通过app.use()方法,我们将中间件应用到应用程序中。当一个请求到达应用程序时,它会首先通过中间件,然后再到达路由处理函数。

请注意,中间件函数通常接受三个参数:req(请求对象),res(响应对象)和next(下一个中间件函数)。中间件可以通过调用next()函数将控制权传递给下一个中间件或路由处理函数。

执行以上代码:

[root@node3 nodejs]# pm2 start logger.js --watch 
[PM2] Starting /root/nodejs/logger.js in fork_mode (1 instance)
[PM2] Done.

day5:Node.js 第三方库,Node js 入门教程,node.js,node js入门教程,nodejs菜鸟教程

在浏览器中访问 http://127.0.0.1:3001,结果如下图所示:

day5:Node.js 第三方库,Node js 入门教程,node.js,node js入门教程,nodejs菜鸟教程

6|logger   | 应用程序已启动,监听端口3000...
6|logger   | Request URL: /
6|logger   | Request URL: /favicon.ico

Node.js 连接 MySQL

要在Node.js中连接MySQL数据库,你可以使用mysql模块。首先,确保你已经安装了Node.js和MySQL服务器,并且数据库已经设置好并正在运行。你可以通过以下步骤在Node.js中连接MySQL数据库:

  1. 安装mysql模块:在命令行中运行以下命令来安装mysql模块:
npm install mysql
  1. 在Node.js代码中导入mysql模块:在你的Node.js代码中,导入mysql模块并创建一个数据库连接。
const mysql = require('mysql');  
  
// 创建数据库连接  
const connection = mysql.createConnection({  
  host: 'localhost', // MySQL服务器地址  
  user: 'your_username', // MySQL用户名  
  password: 'your_password', // MySQL密码  
  database: 'your_database' // 要连接的数据库名称  
});  
  
// 连接数据库  
connection.connect((err) => {  
  if (err) {  
    console.error('连接数据库失败:', err);  
    return;  
  }  
  console.log('成功连接到数据库');  
});
  1. 关闭数据库连接:在你的代码完成与数据库的交互后,记得关闭数据库连接以释放资源。
// 关闭数据库连接  
connection.end();
  1. 数据库操作

    website.sql

    SET NAMES utf8;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    --  Table structure for `websites`
    -- ----------------------------
    DROP TABLE IF EXISTS `websites`;
    CREATE TABLE `websites` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
      `url` varchar(255) NOT NULL DEFAULT '',
      `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
      `country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    --  Records of `websites`
    -- ----------------------------
    BEGIN;
    INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '菜鸟教程', 'http://www.runoob.com/', '4689', 'CN'), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
    COMMIT;
    
    SET FOREIGN_KEY_CHECKS = 1;
    
    
    查询数据
    var mysql  = require('mysql');  
     
    var connection = mysql.createConnection({     
      host     : 'localhost',       
      user     : 'root',              
      password : '123456',       
      port: '3306',                   
      database: 'test' 
    }); 
     
    connection.connect();
     
    var  sql = 'SELECT * FROM websites';
    //查
    connection.query(sql,function (err, result) {
            if(err){
              console.log('[SELECT ERROR] - ',err.message);
              return;
            }
     
           console.log('--------------------------SELECT----------------------------');
           console.log(result);
           console.log('------------------------------------------------------------\n\n');  
    });
     
    connection.end();
    
    插入数据
    var mysql  = require('mysql');  
     
    var connection = mysql.createConnection({     
      host     : 'localhost',       
      user     : 'root',              
      password : '123456',       
      port: '3306',                   
      database: 'test' 
    }); 
     
    connection.connect();
     
    var  addSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(0,?,?,?,?)';
    var  addSqlParams = ['菜鸟工具', 'https://c.runoob.com','23453', 'CN'];
    //增
    connection.query(addSql,addSqlParams,function (err, result) {
            if(err){
             console.log('[INSERT ERROR] - ',err.message);
             return;
            }        
     
           console.log('--------------------------INSERT----------------------------');
           //console.log('INSERT ID:',result.insertId);        
           console.log('INSERT ID:',result);        
           console.log('-----------------------------------------------------------------\n\n');  
    });
     
    connection.end();
    
    更新数据
    var mysql  = require('mysql');  
     
    var connection = mysql.createConnection({     
      host     : 'localhost',       
      user     : 'root',              
      password : '123456',       
      port: '3306',                   
      database: 'test' 
    }); 
     
    connection.connect();
     
    var modSql = 'UPDATE websites SET name = ?,url = ? WHERE Id = ?';
    var modSqlParams = ['菜鸟移动站', 'https://m.runoob.com',6];
    //改
    connection.query(modSql,modSqlParams,function (err, result) {
       if(err){
             console.log('[UPDATE ERROR] - ',err.message);
             return;
       }        
      console.log('--------------------------UPDATE----------------------------');
      console.log('UPDATE affectedRows',result.affectedRows);
      console.log('-----------------------------------------------------------------\n\n');
    });
     
    connection.end();
    
    删除数据
    var mysql  = require('mysql');  
     
    var connection = mysql.createConnection({     
      host     : 'localhost',       
      user     : 'root',              
      password : '123456',       
      port: '3306',                   
      database: 'test' 
    }); 
     
    connection.connect();
     
    var delSql = 'DELETE FROM websites where id=6';
    //删
    connection.query(delSql,function (err, result) {
            if(err){
              console.log('[DELETE ERROR] - ',err.message);
              return;
            }        
     
           console.log('--------------------------DELETE----------------------------');
           console.log('DELETE affectedRows',result.affectedRows);
           console.log('-----------------------------------------------------------------\n\n');  
    });
     
    connection.end();
    

    day5:Node.js 第三方库,Node js 入门教程,node.js,node js入门教程,nodejs菜鸟教程文章来源地址https://www.toymoban.com/news/detail-722628.html

到了这里,关于day5:Node.js 第三方库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Node第三方包 【Request】

    2023年05月04日
    浏览(76)
  • Node第三方包 【mysql2】

    2023年04月23日
    浏览(33)
  • Vue 项目中引入本地第三方 JS 库

    ESLint 语法检测会报错: \\\'$\\\' is not define   ESLint 语法检测不会报错   ESLint 语法检测不会报错   ESLint 语法检测会报错: \\\'$\\\' is not define 项目开启了 ESLint 语法检测的话,会报一个 error : \\\'$\\\' is not defined。 1、在每一个使用 $ 的代码行上 加  /* eslint-disable */  ,忽略该报错。 2、在根

    2024年02月04日
    浏览(78)
  • 【Node.js学习 day5——包管理工具】

    包是什么 包(package),代表了一组特定功能的源码集合 包管理工具 管理包的应用软件,可以对包进行下载安装,更新,删除,上传等操作 借助包管理工具,可以快速开发项目,提升开发效率 常用的包管理工具 下面列举了前端常用的包管理工具 · npm · yarn · cnpm 搜索包的方

    2024年02月01日
    浏览(53)
  • node 第十四天 基于express的第三方中间件multer node后端处理用户上传文件

    Multer 是一个 node.js 中间件,用于处理 multipart/form-data 类型的表单数据,它主要用于上传文件。它是写在 busboy 之上的所以非常高效。 前面我们已经知道了怎样利用express提供的静态资源处理中间件 express.static() 处理用户请求静态资源文件(图片, js, css等) 接下来学习如何处理用

    2024年02月06日
    浏览(43)
  • 【100天精通python】Day15:python 第三方模块和包,模块如何以主程序形式执行

    目录 1 常用的第三方模块 2. 第三方模块的安装和使用 2.1 安装第三方模块:

    2024年02月15日
    浏览(55)
  • 修改node_modules中安装的依赖(如第三方ui组件样式)并在下次安装时保留

    场景:需要修改安装的某个ui库的样式或者其他依赖,直接去node_modules中修改后,重新安装,或者其他小伙伴的电脑上并不能同时修改 方案:用patch-package 可以保留修改 步骤一 安装 patch-package — npm i patch-package --save 步骤二 配置package.json script加上‘‘postinstall’’:“patch-

    2024年02月08日
    浏览(55)
  • pc端web网站使用第三方微信登录流程(web、js)

    网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 网站接入准备工作 微信开放平台注册开发者账号,点击查看操作指引; 微信开放平台-管理中心-创建网站应用并通过审核; 通过审核后可以获得相应的AppID和AppSecret; 应用申请微信登录且通过审核后,

    2024年03月25日
    浏览(50)
  • vue3+ts import引入第三方js文件报错解决方法

    报错原因 :执行 import XXX from ‘XXX.js’ 报错,The requested module ‘xxx.js’ does not provide an export named ‘default’ 可能是第三方文件不支持模块化标准,不能按需导入 解决方案 : 第一种方法 : 在index.html里利用script全局引入 第二种方法 : 在所需的.vue文件里单独引入,最后在hea

    2024年02月16日
    浏览(59)
  • 031-安全开发-JS应用&WebPack打包器&第三方库JQuery&安装使用&安全检测

    1、三方库-JQuery-使用安全 2、打包器-WebPack-使用安全 演示案例: ➢打包器-WebPack-使用安全 ➢第三方库-JQuery-使用安全 创建WebPack,并创建目录src在目录下创建1.js 2.js 1.js 2.js 在创建index.html 由于js相互依赖的顺序不同,造成无法执行 ; 使用 Webpack 的主要原因: 模块化支持 :

    2024年02月22日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包