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

简介: 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


准备数据库:


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"}]




相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
8月前
|
前端开发 JavaScript NoSQL
使用 Node.js、Express 和 React 构建强大的 API
本文详细介绍如何使用 Node.js、Express 和 React 构建强大且动态的 API。从开发环境搭建到集成 React 前端,再到利用 APIPost 高效测试 API,适合各水平开发者。内容涵盖 Node.js 运行时、Express 框架与 React 库的基础知识及协同工作方式,还涉及数据库连接和前后端数据交互。通过实际代码示例,助你快速上手并优化应用性能。
|
10月前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
392 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
10月前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
492 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
11月前
|
缓存 NoSQL JavaScript
Vue.js应用结合Redis数据库:实践与优化
将Vue.js应用与Redis结合,可以实现高效的数据管理和快速响应的用户体验。通过合理的实践步骤和优化策略,可以充分发挥两者的优势,提高应用的性能和可靠性。希望本文能为您在实际开发中提供有价值的参考。
295 11
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
JavaScript
使用node.js搭建一个express后端服务器
Express 是 Node.js 的一个库,用于搭建后端服务器。本文将指导你从零开始构建一个简易的 Express 服务器,包括项目初始化、代码编写、服务启动与项目结构优化。通过创建 handler 和 router 文件夹分离路由和处理逻辑,使项目更清晰易维护。最后,通过 Postman 测试确保服务正常运行。
837 1
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
Web App开发 JavaScript 前端开发
探索后端开发:Node.js与Express的完美结合
【10月更文挑战第33天】本文将带领读者深入了解Node.js和Express的强强联手,通过实际案例揭示它们如何简化后端开发流程,提升应用性能。我们将一起探索这两个技术的核心概念、优势以及它们如何共同作用于现代Web开发中。准备好,让我们一起开启这场技术之旅!
264 0
|
Web App开发 JavaScript 前端开发
构建高效后端服务:Node.js与Express框架的实践
【10月更文挑战第33天】在数字化时代的浪潮中,后端服务的效率和可靠性成为企业竞争的关键。本文将深入探讨如何利用Node.js和Express框架构建高效且易于维护的后端服务。通过实践案例和代码示例,我们将揭示这一组合如何简化开发流程、优化性能,并提升用户体验。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。