node.js学习笔记(25) express与数据库

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: mysql模块是一个node.js的mysql数据库驱动,纯javascript编写,无需编译。Node-orm是一个node.js的object-relational-mapping框架,能支持mysql、mariadb、postgresql、sqlite、mongodb等数据库。

Express是一个非常好用的web框架,它可以应用与网站、博客、管理系统等等。当我们开发网站等应用的时候,一般都会用数据库来保存数据。这时就需要jdbc这样的驱动来保存连接数据库。

Npmjs.com上提供了丰富的第三方模块,mysql模块就是其中之一,它与mysql数据库同名,是mysql数据库的驱动,用javascript编写的,无需编译。


Hello mysql


先来创建一个mysql的示例,

创建一个nodejs-mysql工程:

mkdir nodejs-mysql
cd nodejs-mysql
npm init
npm install
#安装mysql模块
npm install mysql


准备数据库:

3145388aabb69009c5d103641a59e75b725617dd

PS. 这是一张图片,这段脚本中可能有什么关键字吧,死活都不能发布,只能用图片了。


代码index.js:

var mysql      = require('mysql');
var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : 'root',
    database : 'nodejs'
});

connection.connect();

connection.query('select * from user', function(err, rows, fields) {
    if(err) throw err;
    for (var i=0;i <rows.length;i++){
        console.log('username:'+rows[i].username);
    }
});
connection.end();

运行结果:

lee@mypc ~/works/nodejs/study25/nodejs-mysql $ node index.js 
username:admin

mysql是一个很好的第三方模块,功能非常强大。然而我习惯了javaEE中的hibernate,习惯了ORM而不是sql语句。所以我浅尝辄止了mysql之后就去寻找下一个第三方模块。

Node-orm是一个node.js的object-relational-mapping框架。它似乎有过好几个名字,orm、node-orm、node-orm2。能支持mysql、mariadb、postgresql、sqlite、mongodb等数据库。


Hello node-orm


nodejs-orm.js:

var orm = require("orm");

orm.connect('mysql://root:root@localhost:3306/nodejs', function(err, db){
    if (err) throw err;
    var User = db.define("user", {
        id          :Number,
        name        :String,
        username    :String,
        password    :String,
        birthday    :Date
    });
    User.find({}, function(err, items) {
        //console.log(items.length);
        for(var i=0;i<items.length;i++){
            console.log('username:'+items[i].username);
        }
    });
});


运行结果:

lee@mypc ~/works/nodejs/study25/nodejs-mysql $ node nodejs-orm.js 
username:admin

Express与node-orm


Node-orm可以以中间件的形式跟express结合。

来看一个实例

创建一个express项目:

express express-orm
cd express-orm
npm install
npm install orm
npm install mysql

修改app.js:

...
var orm = require("orm");
...
app.use(orm.express("mysql://root:root@localhost:3306/nodejs", {
    define: function (db, models, next) {
        models.User = db.define("user", {
            id          :Number,
            name        :String,
            username    :String,
            password    :String,
            birthday    :Date
        });
        next();
    }
}));
...

修改routes/users.js:

...
router.get('/', function(req, res, next) {
  req.models.User.find(function(err, users){
      if(err){
          res.send(err);
      }

      res.send(JSON.stringify(users));
  });
});
...

运行并测试expres-orm:

npm start

lee@mypc ~/works/nodejs/study25/express-orm $ curl http://localhost:3000/users
[{"id":1,"name":"lee","username":"admin","password":"admin","birthday":"1988-08-07T23:08:08.000Z"}]




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
11天前
|
JavaScript 关系型数据库 API
Nest.js 实战 (二):如何使用 Prisma 和连接 PostgreSQL 数据库
这篇文章介绍了什么是Prisma以及如何在Node.js和TypeScript后端应用中使用它。Prisma是一个开源的下一代ORM,包含PrismaClient、PrismaMigrate、PrismaStudio等部分。文章详细叙述了安装PrismaCLI和依赖包、初始化Prisma、连接数据库、定义Prisma模型、创建Prisma模块的过程,并对比了Prisma和Sequelize在Nest.js中的使用体验,认为Prisma更加便捷高效,没有繁琐的配置。
Nest.js 实战 (二):如何使用 Prisma 和连接 PostgreSQL 数据库
|
19天前
|
开发框架 监控 JavaScript
使用Node.js 框架( Express.js)来创建一个简单的 API 端点
【7月更文挑战第5天】使用Node.js 框架( Express.js)来创建一个简单的 API 端点
18 3
|
21天前
|
前端开发 NoSQL 数据库
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
|
29天前
|
JSON JavaScript 中间件
Express.js:构建轻量级Node.js应用的基石
**Express.js 概览**:作为Node.js首选Web框架,Express以其轻量、灵活和强大的特性深受喜爱。自2009年以来,其简洁设计和丰富中间件支持引领开发者构建定制化应用。快速开始:使用`express-generator`创建项目,安装依赖,启动应用。示例展示如何添加返回JSON消息的GET路由。Express适用于RESTful API、实时应用等多种场景,社区支持广泛,助力高效开发。
27 1
|
18天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的《数据库原理及应用》课程平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的《数据库原理及应用》课程平台附带文章源码部署视频讲解等
22 0
|
22天前
|
NoSQL JavaScript 前端开发
JavaScript与数据库MongoDB的联动
JavaScript和MongoDB结合,构建Web应用的关键技术。MongoDB,作为NoSQL数据库,以其灵活性和高性能深受开发者喜爱。本文探讨两者的基本概念,如JavaScript在前端交互和后端数据处理的作用,MongoDB的文档存储和查询特性。通过Node.js和mongoose库,展示了连接数据库、定义数据模型及增删改查操作的代码示例。强调了性能优化(如索引、批量操作)和安全措施(如权限控制、数据加密)的重要性。最后,提供了一个简单的CRUD应用示例,涵盖Express和前端API调用。
18 0
|
1月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的数据库课程在线教学附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的数据库课程在线教学附带文章和源代码部署视频讲解等
31 4
|
1月前
|
JavaScript 前端开发 中间件
Express框架搭建项目 node.js
【6月更文挑战第3天】这篇文章是关于使用Express框架构建Node.js Web应用的教程。Express是一个轻量级、功能丰富的框架,特点包括简洁灵活的核心、强大的中间件支持、灵活的路由系统和模板引擎兼容性。文章介绍了如何安装Express,并通过一个简单的示例展示了如何创建一个基本的Web服务器。最后,鼓励读者继续学习和实践,以充分利用Express和Node.js的能力。
52 1
|
1月前
|
JavaScript NoSQL 数据库连接
使用Nodejs + express连接数据库mongoose
【6月更文挑战第3天】这篇文章介绍了如何在Express应用中使用Mongoose连接MongoDB数据库。首先,需要创建一个`db.js`文件,然后通过`npm install mongoose`安装Mongoose驱动。接着,在应用中引入MongoDB模块,建立到数据库的连接。创建一个Mongoose schema定义数据模型,如用户信息表。最后,执行数据库操作,包括查询、插入、更新和删除文档,并在完成后关闭数据库连接。文中还提供了相关代码示例。
157 1
|
1月前
|
Java 测试技术 数据安全/隐私保护
基于ssm+vue.js+uniapp小程序的《数据库原理及应用》课程平台附带文章和源代码部署视频讲解等
基于ssm+vue.js+uniapp小程序的《数据库原理及应用》课程平台附带文章和源代码部署视频讲解等
21 0
基于ssm+vue.js+uniapp小程序的《数据库原理及应用》课程平台附带文章和源代码部署视频讲解等