전자 메일을 통해 전달되는 익스프레스 앱을 사용하고 있습니다. 무슨 일이 일어나는지는 사용자에게 사물 항목 목록이 표시되고, 클릭하면 해당 항목의 정보를 사용하여 파이썬 코드가 실행된다는 것입니다. 다음은 익스프레스 앱을 통한 연결 오류
다음은let sqlSelectBoxInformation = "SELECT DISTINCT longestDimension, box_id from box WHERE occupied ='unoccupied'";
connectionBoxInformation.query(sqlSelectBoxInformation, function(err, rows, fields) {
if (!err) {
// Check to see if the user entered hashtag is found in the database
// Create a variable to track if the item was found
if(rows.length > 0){
var wasFound = false;
// if (databaseHashtag == userEnteredHashtag) {
console.log(databaseHashtag);
var data = {
rows: rows,
userHashtag: databaseHashtag
}
res.render('delivery/chooseBox', data);
// Change the variable to true
wasFound = true;
}
else {
res.render('delivery/alloccupied');
}
이
<h3>Please begin by selecting the box size below:</h3>
<!-- add if statement-->
<form method="post" action="/delivery/chooseBoxSelected">
<input type="hidden" name="userHashtag" value="{{userHashtag}}">
{{#each rows}}
<input type="hidden" name="boxSelectedValue" value="{{this.box_id}}">
<input type="hidden" name="boxSelectedDimension" value="{{this.longestDimension}}">
<button class="btn-dimension" type="submit">
<i class="fa fa-cube" aria-hidden="true"></i>
Longest dimension {{this.longestDimension}}"
</button>
{{/each}}
은 무엇 일어나는 것은 뷰에게있는 경로입니다 하나의 항목 만이 데이터베이스에서 뽑아 클릭시 사용자에게 목록으로 표시되는 경우 그것은 작동합니다. 여러 항목을 데이터베이스에서 가져 와서 사용자에게 표시하면 연결 오류가 발생합니다. 다음은
는let sql = `SELECT box_id, cubby_id, occupied, comport
FROM box
WHERE longestDimension = ?
AND LOWER(box_id) = LOWER(?)`;
connection.query(sql, [boxSelectedDimension, boxSelectedValue] , function(err, rows, fields) {
if (!err) {
for(var i=0; i< rows.length; i++) {
// Make the comparaison case insensitive
if (rows[i].occupied == `unoccupied`) {
console.log("unoccupied");
var comport = rows[i].comport;
var command = "open" + rows[i].cubby_id;
var commandClose = "close" + rows[i].cubby_id;
console.log(command);
console.log(comport);
var options = {
scriptPath: 'python/scripts',
args: [command, comport, commandClose] // pass arguments to the script here
};
PythonShell.run('controlLock.py', options, function (err, results) {
if (err) throw err;
console.log('results: %j', results);
});
다시 한번 더 연결 오류가 하나의 항목이 렌더링되는으로 발생되지 경로 페이지 (사용자가 항목을 클릭되면,이 노선 페이지에 게시됩니다를)이지만, 양식 내에서 여러 문제가있는 것으로 보입니다. 나는이 문제가 시야에 있음을 짐작하고있다.
UPDATE
더 코드
// Using post instead of get because a form was submitted with the method post
router.post('/', function(req, res){
// Store the box location in the form of box_id
var boxSelectedValue= req.body.boxSelectedValue;
var boxSelectedDimension = req.body.boxSelectedDimension;
var userHashtag = req.body.userHashtag;
양식에 항목이 두 개 이상있을 때 생성 된 HTML (브라우저가보기/소스와 함께 표시)을 표시 할 수 있으므로 브라우저가보고있는 실제 HTML을 볼 수 있으므로 그림을 그릴 필요가 없습니다 템플릿에서 무엇이 될지 알아보십시오. 또한 마지막 코드 블록의 코드로 이어지는 경로에서 상위 수준 코드를 표시 할 수 있습니까? – jfriend00
제 생각에'boxSelectedDimension'과'boxSelectedValue'는 하나 이상의 항목이 선택되었을 때 원하는 것이 아니지만 변수가 어떻게 설정되어 있는지 알려주는 충분한 코드가 없습니다. – jfriend00
boxSelectedValue 및 oxSelectedDimension이 검색되는 방법을 보여주기 위해 더 많은 코드를 추가했습니다 – John