首页 > 解决方案 > 从 microsoft sql server 获取 json 数据并存储在变量中以在 vuejs v-for 属性中使用

问题描述

我正在开发一个完整的堆栈应用程序。我的前端开发已经准备好了。我正在使用 vuejs 在屏幕上显示数组。现在我需要使用 nodejs 从 sql server 获取该数组。我真的不了解异步函数、http 请求和大量基于服务器的知识。只是想得到一个没有任何知识探索的数组。

这是我的节点模块,用于获取数据或将数据插入 mssql 服务器。

var dbConfig = {

    server: "localhost\\MSSQLSERVER",
    database: "sample",
    user: 'sa',
    password:'deegii2001060108',
    port: 1433
};
var result;

exports.dbcontext=function(engine, config){

    const sql = require('mssql')
    return new Promise(function(resolve, reject) {
        var conn = sql.connect(config, function(err) {
            if(err) {
                reject(err);
            } else {
                sql.query(engine, function(err, recordsets,returnValue, affected) {
                    if(err) {
                        reject(error);
                    } else {
                        result = recordsets;
                        resolve(recordsets);
                        conn.close();
                    }
                })
            }
        })
    })
}


exports.dbcontext('select * from tblGender', dbConfig).then(recordset=>{console.log(recordset)});
console.log('result',result);

在控制台中:

result undefined

{ 
     recordsets: [ [ [Object], [Object], [Object], [Object], [Object] ] ],

     recordset:[ 

     { id: 1, gender: 'male' },

     { id: 2, gender: 'female' },

     { id: 3, gender: 'unknown' },

     { id: 4, gender: 'aertq' },

     { id: 5, gender: 'from vscode' } ],

     output: {},

     rowsAffected: [ 5 ] } //i wanted to store recordset into my global result var outside of function
}

exports.dbcontext(... //connection function

result = recordsets; /*the result variable is not changed but i want to 
store recordsets in global variable outside of the function*/

...}

//Unexpected result:
console.log(result) // undefined
//Expected result:
console.log(result) // an array consists of objects

标签: javascriptnode.jssql-servervue.js

解决方案


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

var sql = require("mssql");

// config for your database
var config = {
    user: 'sa',
    password: 'deegii2001060108',
    server: 'localhost\\MSSQLSERVER', 
    database: 'sample' 
};

// connect to your database
sql.connect(config, function (err) {

    if (err) console.log(err);

    // create Request object
    var request = new sql.Request();

    // query to the database and get the records
    request.query('select * from tblGender', function (err, result) {

        if (err) console.log(err)

        // send records as a response
        console.log(JSON.stringify(result));

    });
});

推荐阅读