Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MS SQL不在NodeJS中返回数据_Javascript_Node.js_Sql Server - Fatal编程技术网

Javascript MS SQL不在NodeJS中返回数据

Javascript MS SQL不在NodeJS中返回数据,javascript,node.js,sql-server,Javascript,Node.js,Sql Server,我为数据库创建了如下配置文件: module.exports.connection = { sqlserver: { user: 'user_name', password: 'password', server: 'servername\\instancename', database: 'database_name', port: 1433, }, }; const sql = require('mssql'); const config =

我为数据库创建了如下配置文件:

module.exports.connection = {
  sqlserver: {
    user: 'user_name',
    password: 'password',
    server: 'servername\\instancename',
    database: 'database_name',
    port: 1433,
  },
};
const sql = require('mssql');
const config = require('../config/connection');

sql.connect(config.connection.sqlserver).then((pool) => pool.request().query('select type from dbo.category')).then((result) => {
  console.log(result);
}).catch((err) => {
  console.log(err);
});

sql.close();
我在数据库中有一个简单的表:

我正在尝试从上表中获取数据,如下所示:

module.exports.connection = {
  sqlserver: {
    user: 'user_name',
    password: 'password',
    server: 'servername\\instancename',
    database: 'database_name',
    port: 1433,
  },
};
const sql = require('mssql');
const config = require('../config/connection');

sql.connect(config.connection.sqlserver).then((pool) => pool.request().query('select type from dbo.category')).then((result) => {
  console.log(result);
}).catch((err) => {
  console.log(err);
});

sql.close();
不幸的是,我并没有在控制台中看到任何东西,也并没有任何错误,所以我无法找到问题所在。 我也试过:

sql.connect(config.connection.sqlserver).then((pool) => pool.request().query('select type from dbo.category')).catch((err) => {
    console.log(err);
  }).then((result) => {
    console.log(result);
  }).catch((err) => {
    console.log(err);
  });
  sql.close();

我用过。我正试图在我的nodeJs服务器上实现这一点。有什么想法吗?

我解决了我的问题。谢谢朱莉娅·谢斯塔科娃的建议。 我的查询函数如下所示:

const sql = require('mssql');
const config = require('./config/connection');
module.exports = {
  query(query) {
    return sql.connect(config.connection.sqlserver).then(() => sql.query(query)).then((result) => {
      sql.close();
      return result.recordset;
    }).catch((err) => console.log(err));
  },
};

我正在返回Promise,这样当我在服务器上调用查询函数时,我就可以使用它来表示我的数据。

尝试像这样更改查询,从类别中选择*并检查它返回的内容,同时向控制台日志中添加一些字符串,以查看then或catch是否有效。像这样的“console.log”然后处理。结果:',结果;'我试过了,什么也没有。任何错误。好的,您是否检查过是否调用了此代码?在这段代码之前和之后添加控制台,并且您还可以尝试先测试sql.connectconfig.connection.sqlserver.then result=>console.log'connected!'。catcherr=>console.log'some error';哦,是的。在完成查询之前,b/c sql.close调用会发生这种情况。只需将其放入last-then,如果出现错误,还可以将其放入catch以关闭连接。在完成后关闭它。或者使用async/await代替then/catch。一切正常。非常感谢。