Невозможно подключиться к SQL серверу, используя утомительный Node.js - PullRequest
0 голосов
/ 16 июня 2020

Итак, в моей школе есть SQL Сервер "SQL .SCHOOL.EDU \ STUDENTSQLSERVER, 4500", и я, хоть убей, не могу понять, как подключиться к нему, используя утомительное занятие. У меня есть express серверная часть, которая использует реакцию для передней части вещей. Однако в настоящее время я работаю только над индексом express. js, чтобы попытаться получить какую-то обратную связь от сервера и, в конечном итоге, из базы данных.

Вот мой файл index. js в его entirity

var express = require('express');
var router = express.Router();
var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var TYPES = require('tedious').TYPES; 


/* DBConfig */
var config = {
  server: 'SQL.SCHOOL.EDU',
  userName: 'user1',
  password: 'password1',
  debug: true,
  connectionTimeout: 300000,
  requestTimeout: 300000,
  options: {
    database: 'user1',
    instanceName: 'STUDENTSQLSERVER', 
  },
  port: 4500,
};
/*Get users from DB */
function getUsers() {
  var connection = new Connection(config);

  connection.on('connect', function(err) {
    if(err) {
      console.log('Error: ', err)
    }
    // If no error, then good to go...
    request = new Request("select * from 'Users'", function(err) {
      if (err) {
        console.log(err);
      }});
    var result ="";
    request.on('row', function(columns) {
      columns.forEach(function(column) {
        if (column.value === null) {  
          console.log('NULL');  
        } else {  
          result+= column.value + " ";  
        }
      });
      console.log(result);
    });

    request.on('done', function(rowCount, more) {  
      console.log(rowCount + ' rows returned');  
      });

    connection.execSql(request);
  });


}

/* GET home page. */
router.get('/Users', (req, res) => {
  getUsers();
  const users = [

    {id:1, userName: "Lee", age: 23, email: "Lee@email.com"},
    {id:2, userName:  "Bob", age: 22, email: "Bobo@email.com"},
    {id:3, userName:  "James", age: 32, email: "james@email.com"},
    {id:2, userName:  "Lauren", age: 26, email: "lren@email.com"},
    {id:2, userName:  "t-dawg", age: 20, email: "dogg@email.com"},
  ]
  res.json(users)
});




module.exports = router;

Время ожидания соединения продолжает истекать, но я и мои одноклассники смогли подключиться, используя. net и php.

Если кто-нибудь может мне помочь, это было бы здорово, я попытался включить полное имя сервера в «server:» и поместил порт в «port:», но безрезультатно

Спасибо за помощь.

1 Ответ

1 голос
/ 16 июня 2020

Существует пакет npm под названием ms sql (https://www.npmjs.com/package/mssql). Я бы рекомендовал использовать его вот так. Создайте отдельный файл. json для своей конфигурации, например:

config. json

{
 "mssql": {
   "server": 'SQL.SCHOOL.EDU',
   "userName": 'user1',
   "password": 'password1',
   "database": 'user1',
   "debug": true,
   "connectionTimeout": 300000,
   "requestTimeout": 300000,
   "options": {
    "instanceName": 'STUDENTSQLSERVER', 
   },
  "port": 4500
 }

Затем ваш index. js может использовать это так:

const path = require('path');
const express = require('express');
const router = require('express').Router();
const sql = require('mssql');
const sql_config = require(path.join("..", "config", "config.json")).mssql;
const pool = new sql.ConnectionPool(sql_config);
pool.connect(err => { if (err) throw err });

function getUsers() {
 let get_request = new sql.Request(pool);
 get_request.query(`select * from table1`, (err,result) => {
  if(err) {
   *handle error*
  }
  *do stuff with result here*
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...