2017-09-11 1 views
-1

에서 나는 XMLHttpRequest.open에서 매개 변수 (qItems)를 전달해야Node.js를 검색 URL 매개 변수는 서버

index.html을 (app.listen (8080))

var express = require('express'); 
var bodyParser = require('body-parser'); 
var directory = require('serve-index'); 
var sqlite3 = require('sqlite3').verbose(); 
var app = express(); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.set('views', __dirname); 
app.set('view engine', 'pug'); 
var db = new sqlite3.Database('./data/DB.sqlite',function(err){ 
if (err) { 
    console.log(err.message); 
} 
    console.log('Connected to DB!'); 
}); 
app.get('/ItemsList', function(req, res) { 
    db.all("SELECT rowid, iName, iDescrip FROM Items", function(err, row) { 
    if (err !== null) { 
     res.status(500).send("An error has occurred: " + err); 
    } else { 
    res.render('ItemsList.pug', { 
    items: row 
     }, function(err, html) { 
      res.status(200).send(html) 
    }); 
    } 
}); 
}); 
:

하지만 서버 측 (server.js)에

var qItems= 8; 
var url= 'ItemsList'; 
var xhr = new XMLHttpRequest(); 
var tag = document.getElementById("insertHere"); 
tag.innerHTML = "Loading..."; 
xhr.open("GET", url+"?qItems="+qItems, true); 
xhr.onreadystatechange = function() { 
display(tag, xhr); 
} 
xhr.send(null); 
정적 URL을 사용 0

I 시도 (server.js) :

app.get('/ItemsList?qItems='+qItems, function(req, res) {...} 

하지만 얻을 오류 : 서버 측에서 쿼리 매개 변수를 얻을 수있는 방법이 정의되지 않은 (Node.js를에서) qItems

있는가 ?

답변

1

쿼리 매개 변수가있는 ItemsList/qItems=xxx의 URL에 대해 다른 처리기를 구현할 필요가 없으며 쿼리 매개 변수를 /ItemsLists에 사용할 수 있습니다. req.query의 GET 처리기.

app.get('/ItemsList', function(req, res) { 
    // You can access qItems from query params 
    var qItems = req.query.qItems 
    ... 
} 
+0

잘 작동합니다! 감사합니다 – Roberto

+0

도와 드릴까요 https://stackoverflow.com/q/46247437? – Roberto