Node.js mssql Ошибка Не удается добавить порт свойства, объект не расширяемый - PullRequest
0 голосов
/ 08 февраля 2019

Я использую mssql api в Node.js для соединения с базой данных SQL, я получаю информацию о соединении из файла json конфигурации:

"mssql": {
      "user": "XX",
      "password": "XXXX",
      "server": "XXXXXX",
      "database": "XXXXXX"
    },

Конфигурация читает нормально, и я использую эти функции для подключения иquery:

var olderOneDayMSSQL =  (query) => {            
         sql.connect(dbconfig).then(async () => {
            const result = await sql.query(query);            
            //console.log(result); 
            sql.close();    
            return result;
        }).catch((err) =>{
            console.log(err);
            sql.close();
        }).finally(()=> {
            sql.close();
        });                
}


var test3 = (req,res,query) => {   
    var conn = new sql.ConnectionPool(dbconfig);
    var req = new sql.Request(conn);
    var result;
    return  conn.connect().then(async() => {       
            result = await req.query(query);
            //console.log(result);
            conn.close();
            return result;
            //console.log(result);
            //conn.close();
           }).catch(e => {
                return e;
           }).finally(() => {
                conn.close();
           });   
}

В моих маршрутах я вызываю эти функции:

router.get("/countMSSQL1", function(req,res) {      
    var query = `SELECT TOP 1 title,id
    FROM [XX].[dbo].[XXX] where lastChange < dateadd(day,-1,getdate())`;
    olderOneDayMSSQL(query).then((result) => {
        res.json(result);  
    }).catch((err) => {
        res.status(500).send({ message: `${err}`});
    });
});

router.get("/testQuery", async function(req,res) {
    var query = `SELECT Top 3 title
      FROM [XXX].[dbo].[XXXX] where lastChange < dateadd(day,-1,getdate())`;

    var result1 = await test3(query);
    res.json(result1);
 }

Но я получаю эту ошибку:

TypeError: Cannot add property port, object is not extensible
        at new ConnectionPool (C:\Users\m\Desktop\index-watcher-m\node_modules\mssql\lib\base.js:141:22)
        at new ConnectionPool (C:\Users\m\Desktop\index-watcher-m\node_modules\mssql\lib\tedious.js:193:1)
        at Object.connect (C:\Users\m\Desktop\index-watcher-m\node_modules\mssql\lib\base.js:1637:22)

странно то, что я не получал эту ошибку со вчерашнего дня ..?!

РЕДАКТИРОВАТЬ: я читал об Object.preventExtension () здесь https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Fehler/Cant_define_property_object_not_extensible, но я никогда не устанавливал это свойство...

РЕДАКТИРОВАТЬ: Если я ввожу обычный объект конфигурации json как sql.conn (параметр) вручную, он работает нормально, почему я получаю эту ошибку?Нет разрешений?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...