저는 node.js를 처음 사용합니다. 내가 일하고있는 프로젝트는 큰 배열 (625 개 항목)이 문자열로 MySQL 데이터베이스에 저장되어야하고이를 수행하기 위해 Node MySQL을 사용하고 있습니다.Node.js beginner- 쿼리 문자열없이 요청
지금 당장 "/ (열 이름)? (값)"요청이있을 때 행이 업데이트되도록했습니다. 불행히도 노드에 문자열로 625 개 항목을 전달하는 것이 일을하는 가장 효율적인 방법이 아니라는 것을 배우는 데 오랜 시간이 걸리지 않았습니다.
큰 배열을 쿼리 문자열 이외의 문자열로 전달하는 다른 방법에 대한 제안이 있습니까?
var http = require('http'),
mysql = require("mysql"),
url = require("url"),
express = require("express");
var connection = mysql.createConnection({
user: "root",
database: "ballot"
});
var app = express();
app.use(express.bodyParser());
app.options('/', function (request, response)
{
response.header("Access-Control-Allow-Origin", "*");
response.end();
});
app.get('/', function (request, response)
{
connection.query("SELECT * FROM pathfind;", function (error, rows, fields) {
for(i=0;i<rows.length;i++)
{
response.send('<div id="layers">'+rows[i].layers+'</div> \
<div id="speed">'+rows[i].speed+'</div> \
<div id="direction">'+rows[i].direction+'</div>');
}
response.end();
});
});
app.post('/', function (request, response)
{
console.log(request.param('data', null));
var urlData = url.parse(request.url, true);
if(urlData.pathname = '/layers')
{
col = "layers";
}
else if(urlData.pathname = '/speed')
{
col = "speed";
}
else if(urlData.pathname = '/direction')
{
col = "direction";
}
req.addListener("data", function(data) {
connection.query("UPDATE pathfind SET "+col+"="+data+" WHERE num=0", function (error, rows, fields) {
if (error)
{
app.close();
}
});
});
});
app.listen(8080);**
편집 : 이제 게시물을 사용해야합니다. express.js를 사용하여 위 코드를 다시 작성했습니다. 내가 온라인으로 보았던 대부분의 예제는 HTML 폼을 사용하여 게시물을 사용하지만, 괜찮 았지만 프로젝트는 AJAX 요청을 통해 데이터를 게시해야한다. 누군가 node.js에서 데이터가 어떻게 파싱되는지 보여 줄 수 있습니까?
큰 볼륨은 최고, POST 요청을 통해 전송 특히 경우 DB에 수정에 해당 요청 결과, GET 요청은 그래서 분명히 내가했습니다 상태 –
를 변경하지 않고 여러 번 실행하기위한 것입니다로 이것에 대해 잘못된 길을 가고 있습니다. 데이터를 데이터베이스에 게시하려면 어떻게합니까? 그건 그렇고, jQuery의 내장 아약스 라이브러리를 사용하고 있습니다. – Harangue
''HTTP' 모듈 대신'Express'를 사용하면 bodyparser라고하는 멋진 미들웨어 조각이있어서 POST 요청 본문에 액세스 할 수 있습니다. 클라이언트 측에서는 표준'jQuery.post (url, data, callback) '를 사용하여 데이터를 게시합니다. –