Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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
Sql server 获取错误“;错误:无法将握手排队“;是否将节点mysql用于MS SQL Server和节点应用程序连接?_Sql Server_Node.js_Rest_Node Mysql - Fatal编程技术网

Sql server 获取错误“;错误:无法将握手排队“;是否将节点mysql用于MS SQL Server和节点应用程序连接?

Sql server 获取错误“;错误:无法将握手排队“;是否将节点mysql用于MS SQL Server和节点应用程序连接?,sql-server,node.js,rest,node-mysql,Sql Server,Node.js,Rest,Node Mysql,我已经使用node.js开发了一个RESTAPI。我的api正在我的macbook上运行。我正在尝试使用节点mysql模块访问另一台计算机上运行的MS SQL server,但在尝试创建连接时,出现以下错误: GET/contacts/200 12.467毫秒-- events.js:141 投掷者;//未处理的“错误”事件 ^ 错误:调用quit后无法将握手排队。 at Protocol._validateEnqueue(/Users/abc/Desktop/NodeProjects/MyWe

我已经使用node.js开发了一个RESTAPI。我的api正在我的macbook上运行。我正在尝试使用节点mysql模块访问另一台计算机上运行的MS SQL server,但在尝试创建连接时,出现以下错误:

GET/contacts/200 12.467毫秒-- events.js:141 投掷者;//未处理的“错误”事件 ^

错误:调用quit后无法将握手排队。 at Protocol._validateEnqueue(/Users/abc/Desktop/NodeProjects/MyWebsite/node_modules/mysql/lib/Protocol/Protocol.js:202:16) at Protocol._enqueue(/Users/abc/Desktop/NodeProjects/MyWebsite/node_modules/mysql/lib/Protocol/Protocol.js:135:13) 在Protocol.handshake(/Users/abc/Desktop/NodeProjects/MyWebsite/node_modules/mysql/lib/Protocol/Protocol.js:52:41) 在Connection.connect(/Users/abc/Desktop/NodeProjects/MyWebsite/node_modules/mysql/lib/Connection.js:123:18) 在read_json_文件中(/Users/abc/Desktop/NodeProjects/MyWebsite/models/contacts.js:15:14) 在Object.exports.list(/Users/abc/Desktop/NodeProjects/MyWebsite/models/contacts.js:29:22) at/Users/abc/Desktop/NodeProjects/MyWebsite/app.js:38:44 在Layer.handle[as handle_request](/Users/abc/Desktop/NodeProjects/MyWebsite/node_modules/express/lib/router/Layer.js:95:5) 接下来(/Users/abc/Desktop/NodeProjects/MyWebsite/node_modules/express/lib/router/route.js:131:13) 在Route.dispatch(/Users/abc/Desktop/NodeProjects/MyWebsite/node_modules/express/lib/router/Route.js:112:3)

我不知道这是在说什么,有人能引导我通过这个吗

下面给出了我的两个脚本的代码,以便理解这个问题? 我正在尝试通过contacts.js脚本的“function read_json_file()”函数连接到MS Sql server

App.js脚本代码:

  var express        = require('express');
  var http           = require('http');
  var path           = require('path');
  var favicon        = require('serve-favicon');
  var logger         = require('morgan');
  var cookieParser   = require('cookie-parser');
  var bodyParser     = require('body-parser');
  var nodemailer     = require('nodemailer');
  var url            = require('url');

  var routes         = require('./routes/index');
  var contacts       = require('./models/contacts');

  var app            = express();

  // view engine setup
  app.set('views', path.join(__dirname, 'views'));
  app.set('view engine', 'jade');
  app.set('port', process.env.PORT || 3000);

  // uncomment after placing your favicon in /public
  //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
  app.use(logger('dev'));
  app.use(bodyParser.json());
  app.use(bodyParser.urlencoded({ extended: false }));
  app.use(cookieParser());
  app.use(express.static(path.join(__dirname, 'public')));
  app.use('/', routes);
  //app.use('/contacts', contacts);

  // catch 404 and forward to error handler

  app.get('/contacts',function(request, response){
    var get_params = url.parse(request.url, true).query;
    if (Object.keys(get_params).length == 0)
    {
      response.setHeader('content-type', 'application/json');
      response.end(JSON.stringify(contacts.list()));
    }
    else
    {
     response.setHeader('content-type', 'application/json');
     stringify(contacts.query_by_arg(get_params.arg, get_params.value));
   }
 }); 

  app.get('/contacts/:number', function(request, response) {
   response.setHeader('content-type', 'application/json');
   response.end(JSON.stringify(contacts.query(request.params.number)));
 });

  app.get('/groups', function(request, response) {
   response.setHeader('content-type', 'application/json');
   response.end(JSON.stringify(contacts.list_groups()));
 });

  app.get('/groups/:name', function(request, response) {
   response.setHeader('content-type', 'application/json');
   response.end(JSON.stringify(
   contacts.get_members(request.params.name)));
 });

  app.use(function(req, res, next) {
    var err    = new Error('Not Found');
    err.status = 404;
    next(err);
  });


  http.createServer(app).listen(app.get('port'), function() {
   console.log('Express server listening on port ' + app.get('port'));
 });


  module.exports = app;
var fs         = require('fs');
var mysql      = require('mysql');

var connection = mysql.createConnection({
  host     : '192.168.***.***', //Ip address of the server machine
  port     : '****', //Port number
  user     : 'ab',
  password : 'abc',
  database : 'MyDataBase'
});

//Read Json file
function read_json_file() {
  connection.connect();
  connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
    if (err) throw err;
    console.log('The solution is: ', rows[0].solution);
  });

connection.end();

   var file = './data/contacts.json';
   return fs.readFileSync(file);
}

//Parse the the file da
exports.list = function() {
   return JSON.parse(read_json_file());
};

exports.query = function(number) {
   console.log('contact Number is:: '+number);
   var json_result = JSON.parse(read_json_file());
   var result = json_result.result || [];
   for (var i = 0; i < result.length; i++) {
      var contact = result[i];
      if (contact.primarycontactnumber === number)    {
         return contact;
      }
   }
   return null;
};

exports.query_by_arg = function(arg, value) {
   var json_result = JSON.parse(read_json_file());
   var result = json_result.result || [];
   for (var i = 0; i < result.length; i++) {
      var contact = result[i];
      if (contact[arg] === value) {
         return contact;
      }
   }
   return null;
};

exports.list_groups = function() {
  var json_result = JSON.parse(read_json_file());
  var result       = json_result.result || [];
  var resultArray  = [];
  for (var i = 0; i < result.length; i++) {
   var groups = result[i].groups;
   for (var index = 0; index < groups.length; index++) {
      if (resultArray.indexOf(groups[index]) === -1) {
         resultArray.push(groups[index]);
      }
   }
}
return resultArray;
};

exports.get_members = function(group_name) {
   var json_result = JSON.parse(read_json_file());
   var result = json_result.result || [];
   var resultArray = [];
   for (var i = 0; i < result.length; i++) {
      if (result[i].groups.indexOf(group_name) > -1) {
         resultArray.push(result[i]);
      }
   }
   return resultArray;
};
contacts.js脚本代码:

  var express        = require('express');
  var http           = require('http');
  var path           = require('path');
  var favicon        = require('serve-favicon');
  var logger         = require('morgan');
  var cookieParser   = require('cookie-parser');
  var bodyParser     = require('body-parser');
  var nodemailer     = require('nodemailer');
  var url            = require('url');

  var routes         = require('./routes/index');
  var contacts       = require('./models/contacts');

  var app            = express();

  // view engine setup
  app.set('views', path.join(__dirname, 'views'));
  app.set('view engine', 'jade');
  app.set('port', process.env.PORT || 3000);

  // uncomment after placing your favicon in /public
  //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
  app.use(logger('dev'));
  app.use(bodyParser.json());
  app.use(bodyParser.urlencoded({ extended: false }));
  app.use(cookieParser());
  app.use(express.static(path.join(__dirname, 'public')));
  app.use('/', routes);
  //app.use('/contacts', contacts);

  // catch 404 and forward to error handler

  app.get('/contacts',function(request, response){
    var get_params = url.parse(request.url, true).query;
    if (Object.keys(get_params).length == 0)
    {
      response.setHeader('content-type', 'application/json');
      response.end(JSON.stringify(contacts.list()));
    }
    else
    {
     response.setHeader('content-type', 'application/json');
     stringify(contacts.query_by_arg(get_params.arg, get_params.value));
   }
 }); 

  app.get('/contacts/:number', function(request, response) {
   response.setHeader('content-type', 'application/json');
   response.end(JSON.stringify(contacts.query(request.params.number)));
 });

  app.get('/groups', function(request, response) {
   response.setHeader('content-type', 'application/json');
   response.end(JSON.stringify(contacts.list_groups()));
 });

  app.get('/groups/:name', function(request, response) {
   response.setHeader('content-type', 'application/json');
   response.end(JSON.stringify(
   contacts.get_members(request.params.name)));
 });

  app.use(function(req, res, next) {
    var err    = new Error('Not Found');
    err.status = 404;
    next(err);
  });


  http.createServer(app).listen(app.get('port'), function() {
   console.log('Express server listening on port ' + app.get('port'));
 });


  module.exports = app;
var fs         = require('fs');
var mysql      = require('mysql');

var connection = mysql.createConnection({
  host     : '192.168.***.***', //Ip address of the server machine
  port     : '****', //Port number
  user     : 'ab',
  password : 'abc',
  database : 'MyDataBase'
});

//Read Json file
function read_json_file() {
  connection.connect();
  connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
    if (err) throw err;
    console.log('The solution is: ', rows[0].solution);
  });

connection.end();

   var file = './data/contacts.json';
   return fs.readFileSync(file);
}

//Parse the the file da
exports.list = function() {
   return JSON.parse(read_json_file());
};

exports.query = function(number) {
   console.log('contact Number is:: '+number);
   var json_result = JSON.parse(read_json_file());
   var result = json_result.result || [];
   for (var i = 0; i < result.length; i++) {
      var contact = result[i];
      if (contact.primarycontactnumber === number)    {
         return contact;
      }
   }
   return null;
};

exports.query_by_arg = function(arg, value) {
   var json_result = JSON.parse(read_json_file());
   var result = json_result.result || [];
   for (var i = 0; i < result.length; i++) {
      var contact = result[i];
      if (contact[arg] === value) {
         return contact;
      }
   }
   return null;
};

exports.list_groups = function() {
  var json_result = JSON.parse(read_json_file());
  var result       = json_result.result || [];
  var resultArray  = [];
  for (var i = 0; i < result.length; i++) {
   var groups = result[i].groups;
   for (var index = 0; index < groups.length; index++) {
      if (resultArray.indexOf(groups[index]) === -1) {
         resultArray.push(groups[index]);
      }
   }
}
return resultArray;
};

exports.get_members = function(group_name) {
   var json_result = JSON.parse(read_json_file());
   var result = json_result.result || [];
   var resultArray = [];
   for (var i = 0; i < result.length; i++) {
      if (result[i].groups.indexOf(group_name) > -1) {
         resultArray.push(result[i]);
      }
   }
   return resultArray;
};
var fs=require('fs');
var mysql=require('mysql');
var connection=mysql.createConnection({
主机:'192.168.*.**',//服务器计算机的Ip地址
端口:'**',//端口号
用户:“ab”,
密码:“abc”,
数据库:“MyDataBase”
});
//读取Json文件
函数read_json_file(){
connection.connect();
connection.query('选择1+1作为解决方案',函数(err、行、字段){
如果(错误)抛出错误;
console.log('解决方案为:',行[0]。解决方案);
});
连接。结束();
var文件='./data/contacts.json';
返回fs.readFileSync(文件);
}
//解析文件da
exports.list=函数(){
返回JSON.parse(读取JSON文件());
};
exports.query=函数(编号){
console.log('联系人号码为::'+号码);
var json_result=json.parse(read_json_file());
var result=json_result.result | |[];
对于(变量i=0;i-1){
结果ray.push(结果[i]);
}
}
返回结果数组;
};

使用贻贝模块。跟着样品走

您使用的是MAMP的Mysql吗?不,是Microsoft SQL Server MSSQL和Mysql是完全不同的协议。你不能互换使用驱动程序。你可以使用节点mysql吗?你可以使用mssql吗?好的,谢谢,我会试试mssql