MySQL与Node.js

萝らか妹 提交于 2020-02-27 20:55:13

我刚刚开始接触Node.js。 我来自PHP背景,因此我习惯于使用MySQL满足所有数据库需求。

如何在Node.js中使用MySQL?


#1楼

通过安装库连接mysql数据库。 在这里,选择了稳定且易于使用的node-mysql模块。

npm install mysql@2.0.0-alpha2

var http = require('http'),
   mysql = require('mysql');

var sqlInfo = {
   host: 'localhost',
   user: 'root',
   password: 'urpass',
   database: 'dbname'
}
client = mysql.createConnection(sqlInfo);

client.connect();

对于NodeJS mysql连接和查询示例


#2楼

由于这是旧线程,因此只需添加更新:

要安装MySQL node.js驱动程序:

如果仅npm install mysql ,则需要与运行服务器所在的目录相同。 我建议按照以下示例之一进行操作:

对于全局安装:

npm install -g mysql

对于本地安装:

1-将其添加到依赖项的package.json中:

"dependencies": {
    "mysql": "~2.3.2",
     ...

2-运行npm install


请注意,要使连接发生,您还需要运行mysql服务器(与节点无关)

要安装MySQL服务器:

那里有很多教程对此进行了解释,并且这在一定程度上取决于操作系统。 只需转到Google并搜索how to install mysql server [Ubuntu|MacOSX|Windows] 。 但有一句话:您必须转到http://www.mysql.com/downloads/并进行安装。


#3楼

这是可以帮助您的生产代码。

Package.json

{
  "name": "node-mysql",
  "version": "0.0.1",
  "dependencies": {
    "express": "^4.10.6",
    "mysql": "^2.5.4"
  }
}

这是服务器文件。

var express   =    require("express");
var mysql     =    require('mysql');
var app       =    express();

var pool      =    mysql.createPool({
    connectionLimit : 100, //important
    host     : 'localhost',
    user     : 'root',
    password : '',
    database : 'address_book',
    debug    :  false
});

function handle_database(req,res) {

    pool.getConnection(function(err,connection){
        if (err) {
          connection.release();
          res.json({"code" : 100, "status" : "Error in connection database"});
          return;
        }   

        console.log('connected as id ' + connection.threadId);

        connection.query("select * from user",function(err,rows){
            connection.release();
            if(!err) {
                res.json(rows);
            }           
        });

        connection.on('error', function(err) {      
              res.json({"code" : 100, "status" : "Error in connection database"});
              return;     
        });
  });
}

app.get("/",function(req,res){-
        handle_database(req,res);
});

app.listen(3000);

参考: https : //codeforgeek.com/2015/01/nodejs-mysql-tutorial/


#4楼

KnexJs可以在Node.JS和浏览器中用作SQL查询生成器。 我发现它易于使用。 试试看-Knex.js

$ npm install knex --save
# Then add one of the following (adding a --save) flag:
$ npm install pg
$ npm install sqlite3
$ npm install mysql
$ npm install mysql2
$ npm install mariasql
$ npm install strong-oracle
$ npm install oracle
$ npm install mssql


var knex = require('knex')({
  client: 'mysql',
  connection: {
    host : '127.0.0.1',
    user : 'your_database_user',
    password : 'your_database_password',
    database : 'myapp_test'
  }
});

你可以这样使用

knex.select('*').from('users')

要么

knex('users').where({
  first_name: 'Test',
  last_name:  'User'
}).select('id')

#5楼

Imo,您应该尝试使用MySQL Connector / Node.js,它是MySQL的官方Node.js驱动程序。 有关详细说明,请参见ref-1ref-2 。 我已经尝试了mysqljs / mysql,可以在这里获得 ,但是我找不到关于该库的类,方法和属性的详细文档。

因此,我使用X DevAPI切换到了标准的MySQL Connector/Node.js ,因为它是一个基于Promise异步客户端库,并且提供了很好的文档。 看一下以下代码片段:

const mysqlx = require('@mysql/xdevapi');
const rows = [];

mysqlx.getSession('mysqlx://localhost:33060')
.then(session => {
    const table = session.getSchema('testSchema').getTable('testTable');

    // The criteria is defined through the expression.
    return table.update().where('name = "bar"').set('age', 50)
        .execute()
        .then(() => {
            return table.select().orderBy('name ASC')
                .execute(row => rows.push(row));
        });
})
.then(() => {
    console.log(rows);
});
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!