--EDIT-- μλ λκΈμμ μ§λ£¨ν λ²μ 보기
쿼리λ₯Ό μμ±νκ³ μ€νν λ 맀κ°λ³μκ° μλ SELECT λ¬Έ(μ: 'SELECT * FROM table' λλ 'SELECT column1, column2 FROM table')μ λ¬Έμ μμ΄ μλν©λλ€. 맀κ°λ³μκ° μκ±°λ μλ WHERE μ μ κ°λλ‘ μ΄ λͺ λ Ήλ¬Έμ μμ νλ©΄ 'RequestError: Failed to cancel request in 5000ms' μκ°μ΄ μ΄κ³Όλ©λλ€. μ½λ:
const sql = require('mssql');
let users = {};
const config = {
server: 'server',
authentication: {
type: 'default',
options: {
userName: 'user',
password: 'password'
}}
};
sql.connect(config).then(pool => {
let query = 'SELECT column FROM table WHERE Term = <strong i="7">@term</strong>';
return pool.request()
.input('term', sql.Int, 1)
.query(query)
}).then(result =>{
users = result;
sql.close();
console.log(users);
}).catch(err =>{
console.log(err);
});
μ 체 μ€λ₯ μ€ν:
RequestError: Failed to cancel request in 5000ms
at Request.userCallback (C:\Users\v\WebstormProjects\project\node_modules\mssql\lib\tedious\request.js:429:19)
at Request.callback (C:\Users\v\WebstormProjects\project\node_modules\tedious\lib\request.js:56:14)
at Connection.socketError (C:\Users\v\WebstormProjects\project\node_modules\tedious\lib\connection.js:2416:20)
at Connection.dispatchEvent (C:\Users\v\WebstormProjects\project\node_modules\tedious\lib\connection.js:1274:15)
at Connection.cancelTimeout (C:\Users\v\WebstormProjects\project\node_modules\tedious\lib\connection.js:1198:10)
at Timeout._onTimeout (C:\Users\v\WebstormProjects\project\node_modules\tedious\lib\connection.js:1162:14)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7) {
code: 'ETIMEOUT',
originalError: ConnectionError: Failed to cancel request in 5000ms
at ConnectionError (C:\Users\v\WebstormProjects\project\node_modules\tedious\lib\errors.js:13:12)
at Connection.cancelTimeout (C:\Users\v\WebstormProjects\project\node_modules\tedious\lib\connection.js:1198:67)
at Timeout._onTimeout (C:\Users\v\WebstormProjects\project\node_modules\tedious\lib\connection.js:1162:14)
at listOnTimeout (internal/timers.js:531:17)
at processTimers (internal/timers.js:475:7) {
message: 'Failed to cancel request in 5000ms',
code: 'ETIMEOUT'
},
name: 'RequestError',
number: 'ETIMEOUT',
state: undefined,
precedingErrors: []
}
tedious
μ§μ μ¬μ©νμ§ μκ³ mssql
. https://github.com/tediousjs/node-mssql μμ λ¬Έμ λ₯Ό μ΄κ±°λ tedious
λ¬Έμ λ₯Ό μ¬νν΄ λ³΄μΈμ. π
μμ€, λ΄ λμ, λλ λ λ€ μ΄λ € μμ΅λλ€ : P μ£μ‘ν©λλ€ κ·Έλ¦¬κ³ κ°μ¬ν©λλ€
λ λΌμ΄λΈλ¬λ¦¬ λͺ¨λμμ ν μ€νΈλ₯Ό μννκΈ° λλ¬Έμ μ€μ λ‘ μ§λ£¨ν μ½λμ λμΌν μ½λκ° μμ΅λλ€. λμΌν μ½λ, λ¬Έμ λ±. μ½λλ λ€μκ³Ό κ°μ΅λλ€.
const Connection = require('tedious').Connection;
const config = {
server: 'server',
authentication: {
type: 'default',
options: {
userName: 'user',
password: 'password'
}
},
options: {
// If you are on Microsoft Azure, you need encryption:
encrypt: true,
database: 'db' //update me
}
};
const Request = require('tedious').Request;
const TYPES = require('tedious').TYPES;
const connection = new Connection(config);
connection.on('connect', connected);
connection.on('errorMessage', infoError);
connection.on('end', end);
const table = [];
function connected(err) {
if (err) {
console.log(err);
process.exit(1);
}
console.log('connected');
exec("SELECT colum1, colum2 FROM table WHERE Term=@term;");
//console.log(table)
}
function exec(sql) {
let request = new Request(sql, statementComplete);
request.on('columnMetadata', columnMetadata);
request.on('row', rows);
request.on('done', requestDone);
request.addParameter('term', TYPES.Int, 1);
connection.execSql(request);
}
function requestDone(rowCount, more) {
//console.log(rowCount + ' rows');
}
function statementComplete(err, rowCount) {
if (err) {
console.log('Statement failed: ' + err);
} else {
console.log(rowCount + ' rows');
}
}
function end() {
console.log('Connection closed');
process.exit(0);
}
function infoError(info) {
console.log(info.number + ' : ' + info.message);
}
function columnMetadata(columnsMetadata) {
columnsMetadata.forEach(function(column) {
//console.log(column.colName);
});
}
function rows(columns) {
let row = [];
columns.forEach(function(column) {
let value;
if (column.value === null) {
value = 'NULL';
} else {
value = column.value;
}
row.push(value);
});
console.log(row);
}
μ€λͺ
μ μν΄ λμΌν λ¬Έμ μ
λλ€. μ΄κ²μ μμν μ§λ£¨ν λ²μ μΌ λΏμ
λλ€. μ€λ₯:
λͺ
λ Ήλ¬Έ μ€ν¨: ConnectionError: 5000ms μ΄λ΄μ μμ²μ μ·¨μνμ§ λͺ»νμ΅λλ€.
μλ νμΈμ @snekxer μ λλ€ .
맀κ°λ³μκ° μκ±°λ μλ WHERE μ μ κ°λλ‘ μ΄ λͺ λ Ήλ¬Έμ μμ νλ©΄ 'RequestError: Failed to cancel request in 5000ms' μκ°μ΄ μ΄κ³Όλ©λλ€.
Where μ λ μ¬μ©νμ¬ μ€ν¬λ¦½νΈλ₯Ό μ€ννλ €κ³ μλνμ§λ§ λ΄ λ°μ΄ν°λ μ μμ μΌλ‘ κ²μλμμ΅λλ€.
sql λ¬Έμ 맀κ°λ³μκ° μλͺ»λμκ±°λ ꡬμ±μ λ¬Έμ κ° μλ κ² κ°μ΅λλ€.
@IanChokS , λ΄κ° λ λ²μ§Έλ‘ κ²μν μ½λ(μ£Όμμμ)λ₯Ό 보면 WHERE μ μ΄ ν¬ν¨λ©λλ€. DBμμ λμΌν SQL 쿼리λ₯Ό μ€ννμ¬ μ λλ‘ μλνλμ§ νμΈνμΌλ©° 쿼리 λ¬Έμ κ° μλμ νμΈν μ μμ΅λλ€. configμ κ²½μ° configλ₯Ό 건λλ¦¬μ§ μκ³ μΏΌλ¦¬λ§ μμ νλ©΄ κ·Έλλ‘ μ§νλ©λλ€.
맀κ°λ³μκ° μλνλ €λ©΄ ꡬμ±μ ν¬ν¨ν΄μΌ νλ λ€λ₯Έ κ²μ΄ μμ΅λκΉ?
ν ν₯λ―Έλ‘λ€ π€
λ΄κ° μ¬μ©ν 쿼리λ
λͺ¨λ μλνλ κ² κ°μ΅λλ€. μ΄κ²μ΄ 'WHERE μ μ΄ ν¬ν¨λ¨'μ μλ―Έν©λκΉ?
μ΄λ€ μ§λ£¨ν λ²μ μ μ¬μ©νκ³ μμ΅λκΉ?
v6.13.0μ μ¬μ©νκ³ μμ΅λλ€.
μ, λμΌν μΏΌλ¦¬κ° μ μ 맀κ°λ³μνλ λ²μ μ λν΄ μ€ν¨ν©λλ€. exec ν¨μμμ "addParameter"λ₯Ό μ°Έμ‘°νμμμ€.
function connected(err) {
if (err) {
console.log(err);
process.exit(1);
}
console.log('connected');
exec("SELECT colum1, colum2 FROM table WHERE Term=@term;");
}
function exec(sql) {
let request = new Request(sql, statementComplete);
request.addParameter('term', TYPES.Int, 1);
request.on('columnMetadata', columnMetadata);
request.on('row', rows);
connection.execSql(request);
}
@snekxerλ , μ€ν¬λ¦½νΈμ 맀κ°λ³μκ° μλ 쿼리λ₯Ό μ¬μ©νμ¬ λμμ μ¬νν μ μμ΅λλ€. νμ¬ μ΄κ²μ νν€μ³λ³΄κ³ λλΌμ΄λ²κ° μ μ΄λ κ² νλνλμ§ νμΈνμμμ€.
λ΄ μ€μ μ λ€μκ³Ό κ°μ΅λλ€.
κ·Έλμ λ°μ΄ν°λ₯Ό λμ°Ύκ³ μμ΅λλ€. μ€μ μμ λλ½λ κ²μ΄ μμ΅λκΉ? @MichaelSun90 μ€λ₯λ₯Ό μ΄λ»κ² μ¬ννμ΅λκΉ?
μλμ, 그건 μ κ° κ°μ§κ³ μλ κ²κ³Ό λκ°μ΅λλ€. μ μκ²λ μλνμ§ μμ΅λλ€. π€·ββ λμμ΄ λλ κ²½μ° μ μ€μ μ λν μΆκ° μ 보λ₯Ό μλ €λ릴 μ μμ΅λλ€.
Win10 v10.0.18362 λΉλ 18362
Node.js v12.14.0
SQL μλ² v13.0.1711.0
μ€, λΉμ μ Node 2.xxλ₯Ό μ¬μ©νκ³ μμ΅λλ€. κ½€ μ€λλ κ²μ λλ€. Tediousλ Node v 6.x μ΄μμ μ§μνλ©° 곧 Node 6.xμ λν μ§μλ μ€λ¨ν μμ μ λλ€. λ Έλ λ²μ μ΄ λ무 μ€λλμ΄μ λ¬Έμ κ° λ°μνλ κ² κ°μ΅λλ€.
λ Έλ λ²μ 8, 10 λλ 12μμ λμΌν ν μ€νΈλ₯Ό μ¬μ©ν μ μλ νκ²½μ΄ μμ΅λκΉ? λλ κ·Έκ²μ΄ ν¨κ³Όκ° μμ κ²μ΄λΌκ³ μκ°νλ€.
@IanChokS 볡μ¬/λΆμ¬λ£κΈ°κ° μλͺ»λμμ΅λλ€. v12.14.0μ λλ€. λ°©κΈ λκΈ μμ νμ΅λλ€.
μ€ ν. ν μ¬λ―Έμλ€μ π€ μ λΉμ μ λ§μ΄ μ μ§νμ§ μμμ§ μ λͺ¨λ₯΄κ² μ΅λλ€. μ§λ£¨ν μ΅μ λ²μ μ μ¬μ©νλ μλ‘μ΄ ν μ€νΈ νκ²½μ λ§λ€ μ μμ΅λκΉ?
@IanChokS λ λ€λ₯Έ μ΄μν μ μ .... λλ μ§λ£¨ν μ΅μ λ²μ μ μ¬μ©νκ³ μλ€κ³ νμ νμ΅λλ€. λ§ κ·Έλλ‘ npmμμ μ€μΉνμ΅λλ€. κ·νμ μ견μ μ λ₯Ό λ€μ νμΈνμ΅λλ€. npm install tedious
νλ©΄ μ€μΉλ λ²μ μ΄ 8.0.1μμ μ μ μμ΅λλ€. νμ§λ§ npm tedious -v
νλ©΄ v6.13.6μ΄ λμ΅λλ€. λ€λ₯Έ ν¨ν€μ§μ λν μ’
μμ±μ΄ μλμ§ νμΈνκΈ° μν΄ κΉ¨λν νκ²½μμ μ΄κ²μ μλνμ§λ§ μλμμ΅λλ€. λλ κΉ¨λν λΉλμμ κ°μ λλ΅μ μ»μ΅λλ€. κ·Έλμ μ΅μ λ²μ μ μ¬μ© μ€μ΄λΌκ³ λ§μλλ¦¬κ³ μΆμ§λ§ μμ§ν μ΄λ€ λ΅λ³μ λ―Ώμ΄μΌ ν μ§ λͺ¨λ₯΄κ² μ΅λλ€.
μλ νμΈμ @snekxerλ , μ μ΄ λ¬Έμ κ° λ°μνλμ§ μμλμ΅λλ€. "nvarchar.js"λΌλ "\lib\data-types" μλμ μ μ₯μμμ νμΌμ νμΈνλ λ° λμμ μ€ μ μμ΅λκΉ? "writeParameterData: function writeParameterData(buffer, parameter, options, cb)"λΌλ ν¨μκ° μμ΄μΌ ν©λλ€. ν΄λΉ ν¨μμ 맀κ°λ³μλ‘ cb ν¨μκ° μμ΅λκΉ? κ·Έκ²μ΄ λΉμ μ΄ μ°λ¦¬μκ² λ³΄μ¬μ€ μ€λ₯λ₯Ό μ»μ μ΄μ μ λλ€.
κ·Έλ λ€λ©΄ μ΅μ Tedious μ€μ μΌλ‘ μ€ννμ§ λͺ»ν μλ μμ΅λλ€. μ΄ λ³κ²½ μ¬νμ μΌλ§ μ μ λ°μνμΌλ©° μ΅μ λ²μ 8.0.1μμ νμΈνμ΅λλ€.
μ»΄ν¨ν°μ λ κ°μ§ λ²μ μ Tediousκ° μμ μ μμ΅λλ€. νλλ λͺ λ Ή ν둬ννΈμμ μ μμ μΌλ‘ NPM μ€μΉλ₯Ό μ¬μ©νμ¬ μ΄μ μ μΈκΈν λ³κ²½ μ¬νμ΄ μ€μΉλμ§ μμ μ΄μ λ²μ μ Tediousμ λλ€. λ λ²μ§Έλ λ³κ²½ μ¬νμ΄ μλ 볡μ λ μ§λ£¨ν μ΅μ μ μ₯μμ λλ€. "const Connection = require('tedious').Connection;"μΌ λ κΈ°λ³Έμ μΌλ‘ μ§λ£¨ν μ΄μ λ²μ μΈ μ μμ μΌλ‘ μ€μΉλ μ§λ£¨ν¨μ κ°μ Έμ¬ μ μμΌλ―λ‘ μ€λ₯κ° λ°μν©λλ€.
"const Connection = require('ious').Connection;"μ λ³κ²½ν΄ 보μμμ€. "const μ°κ²° = require('./lib/connection');" repo loaction λ΄μμ "npm run build"λ₯Ό μ΄λ―Έ μ€νν κ²½μ°. λ¬Έμ κ° ν΄κ²°λλμ§ νμΈνμμμ€.
λν vscodeλ₯Ό νΈμ§κΈ°λ‘ μ¬μ©νλ κ²½μ° "const Connection = require('tedious').Connection" μ€μμ 'tedious' μμ 컀μλ₯Ό μ¬λ €λμΌλ©΄ μ μμ μΌλ‘ μ€μΉλ Tediousλ₯Ό μ¬μ©νκ³ μλμ§ νμΈν μ μμ΅λλ€. κ³ κΈ νΈμ§κΈ°. μ¬μ© μ€μΈ νλ‘μ νΈμ κ²½λ‘κ° μ»€μ μλμ λνλ©λλ€. κΈ°λ³Έ κ²½λ‘λ μΌλ°μ μΌλ‘ ""C:/Users/
λμμ΄ λμκΈ°λ₯Ό λ°λλλ€.
@MichaelSun90 λ€, κ·Έ κΈ°λ₯μ΄ μ€μ λ‘ μ‘΄μ¬ν©λλ€. νμ€ν λμμ΄ λ©λλ€. κ°μ¬ν©λλ€!
μμμ Ianμκ² λ§νλ―μ΄, κ·Έλ¦¬κ³ λΉμ μ΄ μ§μ νλ―μ΄, λ κ°μ§ λ²μ μ μ§λ£¨ν κ²μ²λΌ 보μ΄μ§λ§ μ΄κ²μ΄ μ΄λ»κ² λ κ²μΈμ§ μ΄ν΄κ° λμ§ μμ΅λλ€. npmμ 8.0.1μ μ€μΉνλ€κ³ λ§νμ§λ§(repoκ° ββnpmμ μ€μΉ λ°©λ²μΌλ‘ μ 곡νκΈ° λλ¬Έμ μλν λλ‘ λ³΄μ λλ€) λ²μ μ νμΈν λ 6.13.6μ΄λΌκ³ νμλ©λλ€. λλ repoλ₯Ό 볡μ νκ³ κ±°κΈ°μμ κ° κ²μ΄μ§λ§ npmμ λΆμΌμΉμ npmμμ μ€μΉνλΌλ λͺ λ Ήμ΄ νμ¬ repoμ μλ λ²μ μ μ 곡νμ§ μλλ€λ λΆνν κ²°κ³Όμ λν΄ κΆκΈν©λλ€.
μ΄ λͺ¨λ κ²μ΄ κΈλ‘λ²μ΄ μλ λ‘컬μμ μΆκ°ν μ μμ΅λλ€. λ°©κΈ νλ‘μ νΈμ λ Έλ λͺ¨λμ νμΈνμ¬ νμΈνμΌλ©° READMEμμλ λ²μ μ 8.0.1λ‘ κΈ°λ‘νμ΅λλ€. λλ λΉμ μ΄ μ μνλλ‘ νμΌμ κ²½λ‘λ₯Ό μꡬνλ €κ³ μλνμ§λ§ μ΄κ²μ μλνμ§ μμ΅λλ€. μμ κ΄μ°°κ³Ό ν¨κ» μλ―Έκ° μμ΅λλ€.
μ΅μ 릴리μ€μμ npm tedious -v
λ₯Ό μ€ννλ©΄ 6.12.0λ λμ€λ―λ‘ κ·Έκ²μ΄ λ¬Έμ λΌκ³ μκ°νμ§ μμ΅λλ€. λλ λΉμ μ λ¬Έμ π’ λΉμ μ μ¬μ©ν μ μμ΄μΌ μμΈμ λͺ¨λ₯΄λ const Connection = require('tedious').Connection;
κ·Έλ κ² μ νλΏλ§ μλλΌ,μ const Connection = require('./lib/connection');
μ΄μμ μΈ μꡬμ μΌλ‘ μμ νμ§ μμ μλ μμ΅λλ€
μ, λΆλͺ ν npm tedious -vλ μ§λ£¨νμ§ μμ npm λ²μ μ μ 곡ν©λλ€. ν¨ν€μ§ μ κΈμ 8.0.1λ μΈκΈν©λλ€. Michaelμ΄ μ€λͺ ν λ΄μ©μμ 8.0.1μ΄ μ€μΉλμ΄ μμ§λ§ μ€λλ μ½λκ° μλ€κ³ μκ°ν©λκΉ? cbμ κ·Έ κΈ°λ₯μ΄ μκΈ° λλ¬Έμ λλ€.
ν package-lock.jsonμ μμ νκ³ npm i
λ€μ μ€ννμμμ€.
μλ£, μ¬μ ν 8.0.1
μ€λ₯κ° κ³μ λ°μνμ΅λκΉ?
λ€. κ·Έλ κΈ° λλ¬Έμ μ΄μ μ½λμ 8.0.1μ΄ μλ κ² κ°μ΅λλ€. μ΄λ»κ² λ κ±΄μ§ μ μ μμ§λ§ μ΄ μμ μμ ν΄κ²°νκ³ μΆμ΅λλ€. npmμμ μ€μΉνλ κ² μΈμ λ€λ₯Έ λ°©λ²μ΄ μμ΅λκΉ?
git clone [email protected]:tediousjs/tedious.git
μλν μ μμ΅λλ€.
κ·Έλ° λ€μ cd tedious
-> npm i
-> npm run build
-> npm run test-all
(νμ¬ ν
μ€νΈκ° μ€ν¨νλμ§ νμΈνκΈ° μν΄)
ν, λλ μ΄λ―Έ 볡μ ν κ²μ΄λΌκ³ μ°κ³ μμμ§λ§ κ±°κΈ°μμ μ΄λλ‘ κ°μΌν μ§ νμ μ΄ μμμ΅λλ€. κ°μ¬ν©λλ€ ν΄λ³΄κ³ ν΄κ²°λλμ§ νμΈνκ² μ΅λλ€
npm run build
λ₯Ό μ€νν ν Michaelμ΄ μ μν λλ‘ const Connection = require('./lib/connection');
μ μλν μ μμ΅λλ€.
κ·Έλλ μλνμ§ μμΌλ©΄ C:/Users//AppData/Local/Microsoft/TypeScript/3.7/node_modules/@types/tedious/index
μμ ν λ€μ npm i tedious
λ€μ μ€ννμμμ€.
볡μ , λΉλ λ° λͺ¨λ μ¬μ ν λμΌν μ€λ₯κ° λ°μν©λλ€.
λ‘컬μ TypeScriptκ° μμ΅λλ€. λ§μΌμ κ²½μ°μ λλΉνμ¬ LocalLow λ° Roamingλ νμΈνμ§λ§ μ무 κ²λ μμμ΅λλ€.
@MichaelSun90 , λΉμ μ μμμ μΈκΈνμ΅λλ€:
"writeParameterData: function writeParameterData(buffer, parameter, options, cb)"λΌλ ν¨μκ° μμ΄μΌ ν©λλ€. ν΄λΉ ν¨μμ 맀κ°λ³μλ‘ cb ν¨μκ° μμ΅λκΉ? κ·Έκ²μ΄ λΉμ μ΄ μ°λ¦¬μκ² λ³΄μ¬μ€ μ€λ₯λ₯Ό μ»μ μ΄μ μ λλ€.
κ·Έλ λ€λ©΄ μ΅μ Tedious μ€μ μΌλ‘ μ€ννμ§ λͺ»ν μλ μμ΅λλ€. μ΄ λ³κ²½ μ¬νμ μΌλ§ μ μ λ°μνμΌλ©° μ΅μ λ²μ 8.0.1μμ νμΈνμ΅λλ€.
μ΄κ²μ νμ¬ λ²μ μ cb 맀κ°λ³μκ° μμ΄μΌ ν¨μ μλ―Έν©λκΉ? κ·Έλ λ€λ©΄ GitHubμμ λ°©κΈ λ³΅μ ν κ²μ΄ μ¬μ ν μμ΅λλ€. μ¬κΈ° 리ν¬μ§ν 리μμ ν΄λΉ νμΌμ νμΈνλλ° νμΌλ μμ΅λλ€.
μλ
νμΈμ @snekxer μ
λλ€ .
μ΅μ Tedious 8.0.1μλ cb κΈ°λ₯μ΄ μμ΄μΌ ν©λλ€. λ
Έλ λͺ¨λμ λ²μ μ νμΈνλ €λ©΄ μ€μ λ‘ npmμ λ²μ μ λ°ννλ "npm -v tedious"λ₯Ό μ¬μ©νλ λμ Tediousμ λ²μ μ λ°νν΄μΌ νλ "npm list tedious"λ₯Ό μλν μ μμ΅λλ€.
λ‘컬μ TypeScriptκ° μμ΅λλ€.
typescript
λ package.json
μ devDependenciesμ μμΌλ―λ‘ npm i
νλ©΄ TypeScriptλ₯Ό λ€μ΄λ‘λνμ¬ Node Modules ν΄λμ λ£μ΄μΌ ν©λλ€... π€
@snekxer λ₯Ό μ 리νκΈ° μν΄ νμ¬ μ΄μ λ©μμ§μμ μ 곡ν ν μ€νΈ μ€ν¬λ¦½νΈλ₯Ό 볡μ λ tedious λ₯Ό μ€ννλ €κ³ ν©λκΉ?
@MichaelSun90 μ΄ μ΄ν΄νκ³ , λͺ νν νκ³ μΆμμ΅λλ€. cbλ λ΄κ° νμΈν λͺ¨λ νλͺ©μ ν¬ν¨λμ΄ μμΌλ―λ‘ μ΄μ μλ λ¬Έμ κ° λμ§ μμμ΅λλ€. μ λ νμ¬ λ³΅μ λ 리ν¬μ§ν 리μμ μ€ν μ€μ΄λ©° μ΄μ μλ npm μ€μΉμμ μ€ν μ€μ΄μμ΅λλ€. λ λ€ κ°μ μ€λ₯λ₯Ό 보μ¬μ€λλ€.
@IanChokS TypeScriptλ repo 볡μ μ npm μ€μΉ λͺ¨λμμ λ΄ λ Έλ λͺ¨λμλ νμλμ§ μμ΅λλ€.
node_modules
λ° package-lock.json
νκ³ npm i
λ€μ μ€νν©λλ€.
https://github.com/npm/npm/issues/17282
μ λ μ΄ ν¨μ μ λΉ μ‘κ³ κ²°κ΅ νμ¬ μ μΈμ μμ NODE_ENVκ° νλ‘λμ μΌλ‘ μ€μ λμμμ μκ² λμμ΅λλ€. λ΄ μ Έ μΈμ μ λ«κ³ μ μΈμ μ μμνλ©΄ μ±κ³΅νμ΅λλ€.
λ΄ νκ²½ λ³μμ NODE_ENV=productionμ μΆκ°νμΌλ―λ‘ node_modulesμ devDependenciesλ₯Ό μ€μΉνμ§ μμμ΅λλ€. κ·Έκ²μ μ κ±°νκ³ μ§κΈμ μ μλν©λλ€.
"λν NODE_ENVλ₯Ό νλ‘λμ μΌλ‘ μ€μ νλλ° μ΄λ¬ν μ΄μ λ‘ npm install λͺ λ ΉμΌλ‘ package-lock.json νμΌκ³Ό node_modules ν΄λλ₯Ό μμ ν΄λ μλνμ§ μμμ΅λλ€. μ μμ μΌλ‘ μλνμ΅λλ€. κ°μ¬ν©λλ€."
@snekxer , μ€μΉλ μ§λ£¨ν μ€ν¬λ¦½νΈμ λν΄ μ€ν¬λ¦½νΈλ₯Ό μ€ννλ €λ κ²½μ° λ¨κ³λ λ€μκ³Ό κ°μμΌ ν©λλ€.
볡μ λ μ μ₯μμ λν΄ μ€ν¬λ¦½νΈλ₯Ό μ€ννλ €λ κ²½μ°:
μ΄ λ°©λ² μ€ νλκ° λ€λ₯΄κ² μλνλμ§ νμΈνλ €λ©΄ λ λ€ μλν μ μμ΅λλ€.
λ¬Έμ κ° cb ν¨μμμ λ°μνλ€κ³ νμ ν©λλ€.
"connection.ts"μλ "getdata"λΌλ ν¨μλ₯Ό νΈμΆν "makeRequest" ν¨μκ° μμ΅λλ€. μ΄ ν¨μλ κ²°κ΅ cb ν¨μλ₯Ό ν¬ν¨νλ "rpcrequest-payload.ts"μμ "__writeParameterData" ν¨μλ₯Ό νΈμΆν©λλ€. cbκ° νΈμΆλμ§ μμΌλ©΄ νλ‘κ·Έλ¨μ΄ κ±°κΈ°μμ λ©μΆκ³ μκ° μ΄κ³Όκ° λ°μν©λλ€.
@IanChokS node_modules λ° package-
@MichaelSun90 μ, λ λ€ μλνλλ° λ°©λ²μ΄ λ λ€ λμΌνκ² μλν©λλ€. κ°μ μ€λ₯μ λλ€. λ λ€ μ μ°κ²°ν μ μμ§λ§ λ¬Έμ λ λ§€κ° λ³μμλ§ μμ΅λλ€. 맀κ°λ³μλ₯Ό μ μΈνλ©΄ μ ν λ¬Έμ κ° μμ΅λλ€(λ€μ λ§νμ§λ§ λ λ€).
@snekxerλ , λλ²κΉ μ μ΄λ€ νΈμ§κΈ°λ₯Ό μ¬μ©νκ³ κ³μλκΉ? VScodeλ λ΄κ° μλ μ μΌν μ΅μ μ΄κΈ° λλ¬Έμ μ ν μ¬νμ λλ€. μ¬μ© μ€μ΄κ±°λ μλνκ³ μΆλ€λ©΄ μ½λλ₯Ό λλ²κ·Ένλ κ²μ΄ μ½κ° λμμ΄ λ μ μμ΅λλ€. λλ νμ¬ μ€μ μ 곡μ νμ¬ μ μ΄λ° μΌμ΄ λ°μνλμ§ μ‘°μ¬ν μ μμ΅λλ€.
λλ λ€μμμ μ€λ¨ μ μ μ€μ ν κ²μ λλ€ :
lib/src ν΄λ μλμ connection.js: "makeRequest(request, packetType, payload)" μλμ "payload.getData"
rpcrequest-payload.ts lib/src ν΄λ : getData, _writeParameterData, writeParameterData μλ
_writeParameterData
writeParameterDataλ λ°μ΄ν° μ νμ λ°λΌ λ€λ¦
λλ€.
λ€μμ 맀κ°λ³μμ λ°μ΄ν° μ νμ λ°λΌ λ€λ₯΄λ©° ν΄λΉ λ°μ΄ν° μ νμ writeParameterDataλ‘ μ΄λν©λλ€.
μλ₯Ό λ€μ΄:
lib\data-types\int.js μλμ int.js: writeParameterData: function writeParameterData(buffer, parameter, _options, cb)
μ΄ cbλ μΏΌλ¦¬κ° μ€λ¨λκ³ μκ° μ΄κ³Όλλ μ΄μ μ λλ€.
@snekxer @MichaelSun90 @IanChokS
λ μΌμ° μλ €λλ¦¬μ§ λͺ»ν΄ μ£μ‘ν©λλ€. νμ§λ§ writeParameterData
μ λν΄ μ€ν΄λ₯Ό νμ κ² κ°μ΅λλ€. π λ¬Όλ‘ , tedious
λ²μ μ μ½λκ° μλ§μ΄κ³ μΌλΆ νμΌμ ν λ²μ μμ κ°μ Έμ€κ³ λ€λ₯Έ νμΌμ λ€λ₯Έ λ²μ μμ κ°μ Έμ€κΈ° λλ¬Έμ μ½λ°± 맀κ°λ³μκ° νΈμΆλμ§ μμΌλ©΄ λΆλͺ
ν μλνμ§ μμ κ²μ
λλ€.
κ·Έλ¬λ λͺ λ² μΈκΈνλ―μ΄ npmμ ν΅ν΄ μ€μΉνκΈ° λλ¬Έμ μ€μΉλ λ²μ μλ "λ΄λΆμ μΌλ‘" μΌκ΄λ μ½λκ° μμ΄μΌ νλ©° λ¬Έμ κ° νΌλμμ λΉλ‘―λ κ²μΈμ§ μμ¬λ©λλ€.
μ μκ°μ λ ν₯λ―Έλ‘μ΄ κ²μ κ·νμ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ΄ν΄λ³΄λ κ²μ λλ€. λ‘컬 λ°μ΄ν°λ² μ΄μ€μ μ°κ²°νλ€κ³ λ§μνμ κ² κ°μλ°μ? SQL Server Management Studio λλ λ€λ₯Έ λꡬλ₯Ό ν΅ν΄ μ°κ²°ν μ μμ΅λκΉ? SQL Server Management Studioλ₯Ό ν΅ν΄ λμΌν λ°μ΄ν°λ² μ΄μ€ 쿼리λ₯Ό μ€ννλ κ²½μ° μλ΅μ΄ λ€μ μ€λ λ° μΌλ§λ 걸립λκΉ?
tedious
μλ μμ² μκ° μ΄κ³Ό μ²λ¦¬μ λν κΈ°λ³Έκ°μ΄ μμ΅λλ€. μμ²μ΄ 15μ΄ νμ μλ£λμ§ μμΌλ©΄ μκ° μ΄κ³Όλκ³ μκ° μ΄κ³Όλ‘ μΈν΄ μλ²μ μ·¨μ μλ¦Όμ λ³΄λ΄ μΏΌλ¦¬λ₯Ό μ·¨μνλ €κ³ μλν©λλ€. . ν΄λΉ μ·¨μκ° νμΈλμ§ μμΌλ©΄ λ°μν μ€λ₯κ° λ°μν©λλ€. μ¦, μΏΌλ¦¬κ° λ°μ΄ν°λ² μ΄μ€λ‘ μ μ‘λμ§λ§ 15μ΄ νμ λͺ¨λ λ°μ΄ν°κ° λ°νλλ κ²μ μλλ―λ‘ μΏΌλ¦¬κ° μ·¨μλμ§λ§ μ·¨μλ νμΈλμ§ μμ μ€λ₯κ° λ°μν©λλ€.
μ€ν¬λ¦½νΈλ₯Ό μ€νν λ connected
λ‘κ·Έ μΆλ ₯μ΄ λ³΄μ΄λμ? λͺ¨λ λ‘κ·Έ μΆλ ₯μ λΆμ¬λ£μ μ μμ΅λκΉ?
쿼리λ₯Ό SELECT 1
μ κ°μ μμ£Ό κΈ°λ³Έμ μΈ κ²μΌλ‘ λ³κ²½νλ©΄ λμΌν λ¬Έμ κ° νμλ©λκΉ?
μλ νμΈμ @arthurschreiber ; μ, λ¬Έμ μμ΄ SQL Server Management Studioμ μ°κ²°νκ³ μ€νν μ μμ΅λλ€. 쿼리λ μ½ 1μ΄κ° 걸립λλ€. μ¬μ€ WHERE μ μ΄ μλ μλ λ΄κ° μννλ λͺ¨λ 쿼리λ μ λλ‘ μλνκ³ 1μ΄κ° 걸립λλ€.
λλ μ 체 μΆλ ₯μ μ»κΈ° μν΄ κ·Έκ²μ λ€μ μ€ννλ €κ³ νμ§λ§(λλ λ°μ μμκ³ μ΄μ κ²¨μ° μΌμ£ΌμΌ λ§μ λ΄ μ»΄ν¨ν°λ₯Ό λ§μ§κ³ μλ€) λΆλͺ ν μ§κΈμ μλνλ€??? λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μλμ§ λͺ¨λ₯΄κ² λ€ π μ무 κ²λ λ³κ²½νμ§ μμμ§λ§ μ§κΈμ μλν©λκΉ? κ°λ° νκ²½κ³Ό μ±μμ ν μ€νΈλμμΌλ©° μ§κΈμ λ¬Έμ κ° μμ΅λλ€. λ¬΄μ¨ μΌμ΄ μμλμ§ λͺ¨λ₯΄μ§λ§ μ΄μ¨λ κ°μ¬ν©λλ€!
SELECT * FROM table WHERE column=something
κ²½μ°μλ§ λ¬Έμ κ° λ°μνμ΅λλ€. λ°λΌμ SELECT * FROM table
νλ©΄ λ¬Έμ κ° μμμ΅λλ€.
μ»΄ν¨ν°λ₯Ό λ€μ μμνκΈ°λ§ νλ©΄ λ κ² κ°μμ π
λΉμ μ΄ κ·Έκ²μ μμλΌ μ μμ΄μ κΈ°μ©λλ€! π
@IanChokS κ°μ₯ μ’μ μ μ λ€μ μμνμ§λ μμκ³ λ΄λ΄ μ μ λͺ¨λμ μμλ€λ κ²μ λλ€. μ, μ»΄ν¨ν° :)
κ°μ₯ μ μ©ν λκΈ
μμ€, λ΄ λμ, λλ λ λ€ μ΄λ € μμ΅λλ€ : P μ£μ‘ν©λλ€ κ·Έλ¦¬κ³ κ°μ¬ν©λλ€