본문 바로가기
MySql

MySQL Node.js 용 MySQL 라이브러리 오류

by 베이스 공부 2020. 11. 5.
반응형

내 Node.js 앱에서 Amazon에서 호스팅되는 MySQL 데이터베이스에 연결하려고합니다.

$ npm install mysql

내 코드는 다음과 같습니다.

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'my amazon sql db',
  user     : 'me',
  password : 'secret',
  database : 'my_db'
});

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();

Workbench를 사용하여 MySQL DB에 연결할 수 있으므로 자격 증명이 괜찮다고 확신합니다.

연결을 시도하면 다음과 같은 오류가 발생합니다.

Connection.js : 91 Uncaught TypeError : Net.createConnection이 함수가 아닙니다.

npm 라이브러리에서 코드 디버깅- connection.js 에서 오류가 발생하는 곳입니다.

this._socket = (this.config.socketPath)
  ? Net.createConnection(this.config.socketPath)
  : Net.createConnection(this.config.port, this.config.host);

connection.js 에는 종속성이 있습니다.

var Net  = require('net');

Windows 컴퓨터에서 Node.js를 로컬로 실행하고 있습니다.

누구든지이 오류의 원인이 무엇인지 말해 줄 수 있습니까?

별도의 티켓 생성 :


 

해결 방법

 

MySQL 노드 모듈에서 필요하고 사용되는 net 모듈은 Node.js 자체의 핵심 부분입니다. 함수가 아닌 Net.createConnection 에 대해 표시되는 오류는 빈 개체로 표시되고 오류가 질문에 대한 의견 중 하나와 관련이 있음을 의미합니다.

브라우저 내에서 코드를 테스트하고 있습니다.

이 특정 모듈은 Node.js에서만 실행해야하며 웹 브라우저에서는 실행할 수 없습니다.


이 오류를 방지하려면 브라우저가 아닌 순수한 Node.js 환경에서이 코드를 실행해야합니다. 브라우저의 클라이언트에있는이 코드는 작동하지 않고 클라이언트 측 모든 것이 조작되고 안전하지 않기 때문에 보안 허점을 추가하기 때문에 간단한 서버가이 목적을 수행 할 수 있습니다. 클라이언트 측에서 데이터베이스를 노출하고 싶지 않고 사용하기 만하면됩니다.

 

참조 페이지 https://stackoverflow.com/questions/38005968

 

 

반응형

댓글