μλ νμΈμ μ¬λ¬λΆ,
λ°μ΄ν°λ² μ΄μ€ μ°κ²°μ λ¬Έμ κ° μμ΅λλ€. μ μ λμμ μ μλνμ§λ§ μ΄μ λΆν° μ΄ μ€λ₯κ° λ°μνμ΅λλ€. μ΄μ λ₯Ό λͺ¨λ₯΄κ² μ΅λλ€.
[μμ² μ€λ₯: μ΅μ’ μνκ° μλ λ‘κ·ΈμΈ μνμμλ§ μμ²μ΄ κ°λ₯ν©λλ€.]
connection.on('connect', function(err) {
Console.log("-------here------");
if(err) {
return console.error(err); // <--
connected = false;
} else {
connected = true;
}
});
λλ κ·Έκ° connection.onμ μ½λ°± κΈ°λ₯μ λ€μ΄κ°μ§ μλλ€κ³ μκ°ν©λλ€. κ·Έλ μ무 κ²λ μΈμνμ§ μμΌλ©° μ°κ²°λ¨μ νμ κ±°μ§μ λλ€.
κ³ λ§μ΅λλ€ !!
λΉμ·ν λ¬Έμ κ° μμ΅λλ€.
C:\Users\Austin\Desktop\prok>node prok.js
{ [RequestError: Requests can only be made in the LoggedIn state, not the Connecting state
]
message: 'Requests can only be made in the LoggedIn state, not the Connecting state',
code: 'EINVALIDSTATE' }
buffer.js:506
throw new RangeError('index out of range');
^
RangeError: index out of range
at checkOffset (buffer.js:506:11)
at Buffer.readUInt8 (buffer.js:544:5)
at Packet.isLast (C:\Users\Austin\Desktop\prok\node_modules\tedious\lib\packet.js:121:
29)
at ReadablePacketStream.<anonymous> (C:\Users\Austin\Desktop\prok\node_modules\tedious
\lib\message-io.js:102:18)
at ReadablePacketStream.emit (events.js:107:17)
at readableAddChunk (C:\Users\Austin\Desktop\prok\node_modules\tedious\node_modules\re
adable-stream\lib\_stream_readable.js:201:16)
at ReadablePacketStream.Readable.push (C:\Users\Austin\Desktop\prok\node_modules\tedio
us\node_modules\readable-stream\lib\_stream_readable.js:165:10)
at ReadablePacketStream.Transform.push (C:\Users\Austin\Desktop\prok\node_modules\tedi
ous\node_modules\readable-stream\lib\_stream_transform.js:133:32)
at ReadablePacketStream._transform (C:\Users\Austin\Desktop\prok\node_modules\tedious\
lib\message-io.js:68:16)
at ReadablePacketStream.Transform._read (C:\Users\Austin\Desktop\prok\node_modules\ted
ious\node_modules\readable-stream\lib\_stream_transform.js:172:10)
μ¬κΈ°μμ μ νν μ½λ νμμ κ±°μ μ¬μ©νκ³ μμ΅λλ€. https://azure.microsoft.com/en-us/documentation/articles/sql-database-develop-nodejs-simple-linux/
--prok.js--
var Connection = require('tedious').Connection;
var config = {
userName: 'tester',
password: 'tester',
server: 'localhost',
options: {
port:3306
}
};
var connection = new Connection(config);
connection.on('connect', function(err) {
// If no error, then good to proceed.
console.log("Connected");
});
var Request = require('tedious').Request;
var TYPES = require('tedious').TYPES;
function executeStatement() {
request = new Request("SELECT * FROM testdb.testtable;", function(err) {
if (err) {
console.log(err);}
});
var result = "";
request.on('row', function(columns) {
console.log('row');
columns.forEach(function(column) {
if (column.value === null) {
console.log('NULL');
} else {
result+= column.value + " ";
}
});
console.log(result);
result ="";
});
request.on('done', function(rowCount, more) {
console.log(rowCount + ' rows returned');
});
connection.execSql(request);
}
executeStatement();
@yossazou λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μλμ§ μ΄ν΄νκΈ°μ μ λ³΄κ° μΆ©λΆνμ§ μμ΅λλ€. νμλλ μ€λ₯λ μ§λ£¨ν DBμ λ μ΄μ μ°κ²°λμ§ μμ μνμμ μμ²μ μ€ννλ €κ³ νλ€λ μλ―Έμ λλ€.
@austincap μ°κ²°μ΄ μ€μ λκΈ° μ μ μ°κ²°μ λν μμ²μ μ€ννκ³ μμ΅λλ€. κ·Έλμ Requests can only be made in the LoggedIn state, not the Connecting state
μ€λ₯κ° λ°μν©λλ€.
μ λ μ΄ λͺ¨λ κ²μ μ΅μνμ§ μμ§λ§ μ°κ²° λλ²κ·Έ μ΄λ²€νΈμ λν νΈλ€λ¬λ₯Ό μΆκ°νλ©΄ μ΄ μ νν μ€λ₯μ λμμ΄ λλ€λ κ²μ μμμ΅λλ€. λ΄ μ°κ²°μ΄ SQL μλ²μμ κ±°λΆλμλ€λ κ²μ μμμ΅λλ€.
connection.on('debug', function(err) { console.log('debug:', err);});
var Connection = require('μ§λ£¨ν').Connection;
var μμ² = μꡬ('μ§λ£¨ν').μμ²;
var νν = μꡬ("νν");
var bodyParser = require("λ³Έλ¬Έ νμ");
var μ± = μ΅μ€νλ μ€();
// λ°λ νμ λ―Έλ€μ¨μ΄
app.use(bodyParser.json());
//μλ² μ€μ
var μλ² = app.listen(process.env.PORT || 8081, ν¨μ() {
var ν¬νΈ = server.address().port;
console.log("μ±μ΄ νμ¬ ν¬νΈμμ μ€ν μ€μ
λλ€.", ν¬νΈ);
});
// λ°μ΄ν°λ² μ΄μ€μ λν μ°κ²° μμ±
λ³μ κ΅¬μ± = {
μΈμ¦: {
μ΅μ
: {
userName: 'username', // μ
λ°μ΄νΈ
λΉλ°λ²νΈ: 'λΉλ°λ²νΈ' // μ
λ°μ΄νΈ
},
μ ν: 'κΈ°λ³Έ'
},
μλ²: 'servername.database.windows.net', // μ
λ°μ΄νΈ
μ΅μ
: {
λ°μ΄ν°λ² μ΄μ€: 'κ°λ°', //μ
λ°μ΄νΈ
μνΈν: true//μ€μ
}
}
// Azureμ λν μ°κ²°μ μμ±ν©λλ€.
var μ°κ²° = μλ‘μ΄ μ°κ²°(ꡬμ±);
//json λ°°μ΄ μμ±
λ³μ λ°μ΄ν° = []
function executeStatement(쿼리, res) {
var μμ² = μλ‘μ΄ μμ²(쿼리, ν¨μ(μ€λ₯, rowCount, ν) {
λ§μ½ (μ€λ₯) {
console.log(μ€λ₯);
} λ λ€λ₯Έ {
console.log(rowCount + 'ν');
res.send({ μν: 200, λ°μ΄ν°: λ°μ΄ν°, λ©μμ§: "νμΈ"})
}
});
//connection.on('debug', function(err) { console.log('debug:', err);}); if the connection is not working
request.on('row', function (row) {
data.push({
ID: row[0].value,
ProductName: row[1].value,
Price: row[2].value,
ProductDescription: row[3].value,
CreatedDate: row[4].value,
Username: row[5].value
})
});
μ°κ²°.execSql(μμ²);
}
app.get('/api/products', ν¨μ(μμ², ν΄μλ) {
var query =('μ νμμ * μ ν');
μ€νλ¬Έ(쿼리, res);
});
// λ΄ db μνΈμ μ¬μ©μ μ격 μ¦λͺ μ΄ μ¬μ€μ λμ΄ μ°κ²°ν μ μμμ νμΈνμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μ λ μ΄ λͺ¨λ κ²μ μ΅μνμ§ μμ§λ§ μ°κ²° λλ²κ·Έ μ΄λ²€νΈμ λν νΈλ€λ¬λ₯Ό μΆκ°νλ©΄ μ΄ μ νν μ€λ₯μ λμμ΄ λλ€λ κ²μ μμμ΅λλ€. λ΄ μ°κ²°μ΄ SQL μλ²μμ κ±°λΆλμλ€λ κ²μ μμμ΅λλ€.
connection.on('debug', function(err) { console.log('debug:', err);});