SQL Server与Node.js

1.SSMS默认用Windows账户登录,SSMS有一个自带的SQL Server账户sa,可以装好软件后设定sa账户。因为我们使用sa用户登录不了,所以我们登录的时候只能选择用系统登录,然后登录进去之后,我们就要去修改相关的属性了,我们右键数据库,点击属性。

《SQL Server与Node.js》 image.png

2.看到左边有一排属性,这个时候,我们点击安全性这个属性,点击之后,我们选择上面当选框中的第二个复选框,也就是SQL server 与windows 的混合验证模式

《SQL Server与Node.js》 image.png

3.设置sa用户,直接右键——属性打开属性对话框。

《SQL Server与Node.js》 image.png

4.在这个sa的登录属性对话框中,我们首先要设置这个用户的密码,由于这个用户名是系统自带的用户,所以我们直接填写密码就可以了,然后再次确认一下密码。

《SQL Server与Node.js》 image.png

5.接着还在这个对话框中,我们点击左上角的第二个属性服务角色,这里是你为添加该用户要实现哪些角色。一般我们自己使用都是配置最高权限的角色,一个是public ,还有一个是sysadmin。

《SQL Server与Node.js》 image.png

6.接着我们还在这对话框,我们点击最后一个属性,也就是状态属性,在这个状态栏中,我们只需要勾选上面一栏是否允许连接到数据库引擎, 选择 授予
下面一栏:登录 选择启用。

《SQL Server与Node.js》 image.png

7.重启SQLServer。

8.用Node.JS连接SQLServer:新建db.js文件,需要改config配置

let mssql = require('mssql');
let db = {};
let config = {
    user: 'sa',
    password: '******',  //刚刚改好的密码
    server: '********',  
    port: 1433,
    database: '******',
    pool: {
        min: 0,
        max: 10,
        idleTimeoutMillis: 3000
    }
};

db.sql = function (sql, callback) {
    let connection = new mssql.ConnectionPool(config, function (err) {
        if (err) {
            console.log(err);
            return;
        }
        let ps = new mssql.PreparedStatement(connection);
        ps.prepare(sql, function (err) {
            if (err) {
                console.log(err);
                return;
            }
            ps.execute('', function (err, result) {
                if (err) {
                    console.log(err);
                    return;
                }
                ps.unprepare(function (err) {
                    if (err) {
                        console.log(err);
                        callback(err, null);
                        return;
                    }
                    callback(err, result);
                });
            });
        });
    });
};

module.exports = db;

9.server就是这个:

《SQL Server与Node.js》 image.png

database可以查询:

Select Name From Master..SysDataBases Where DbId=(Select Dbid From Master..SysProcesses Where Spid = @@spid)

10.创建dbtest文件:

const db = require('./db');
const csv = require('fast-csv');
const fs = require('fs');

let table_name = "***";
let serverData = [];

db.sql('SELECT QH_ID FROM '+table_name, function (err, result) {
    if (err) {
        console.log(err);
        return;
    }
    for (let i=0; i<result.recordset.length; i++) {
        let data = result.recordset[i].***;
        if(data!=null) {
            serverData.push(data);
        }
    }
    exportData();
});

function exportData() {
    let stream = fs.createWriteStream(table_name+".csv");
    csv.write(serverData, {headers:true}).pipe(stream);
    console.log("done");
}

运行此文件就可以向本地写CSV文件。

    原文作者:iswust
    原文地址: https://www.jianshu.com/p/929efe4ffcb7
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞