0
嘿,我正在建立我的第一個hapi API,我連接到一個SQL服務器數據庫就好了,但我試圖建立一個動態查詢字符串基於客戶端發送給我。所以現在我從查詢字符串中獲取不同的參數,但是有時它們可能是空的或者不是,這取決於用戶填充的內容是我發送給服務器的更健壯的查詢。這裏是我的代碼試圖與節點hapi建立一個動態查詢字符串
handler: (request, reply) => {
const query = request.query;
const quoteNum = request.query.QuoteNum;
let numOfQuotes = request.query.NumOfQuotes;
let filterType = request.query.Filter;
const beginDate = request.query.StartDate;
const endDate = request.query.EndDate;
const optionsType = request.query.MoreOptionsType;
const optionsQuery = request.query.moreOptionsQuery;
const optionsValue = request.query.MoreOptionsString;
switch (numOfQuotes) {
case '100':
numOfQuotes = "SELECT TOP 100";
break;
case '200':
numOfQuotes = "SELECT TOP 200";
break;
case '500':
numOfQuotes = "SELECT TOP 500";
break;
case '1000':
numOfQuotes = "SELECT TOP 1000";
break;
case '2000':
numOfQuotes = "SELECT TOP 2000";
break;
case '5000':
numOfQuotes = "SELECT TOP 5000";
break;
case '10000':
numOfQuotes = "SELECT TOP 10000";
break;
case 'ALL':
numOfQuotes = "SELECT";
break;
default:
numOfQuotes = "SELECT TOP 50";
}
if (filterType != '') {
switch (filterType) {
case 'Q':
filterType = " AND SOHeader.SOTypeID = 'Q'"
break;
case 'SO':
filterType = " AND SOHeader.SOTypeID = 'SO'"
break;
case 'TI':
filterType = " AND SOHeader.SOTypeID = 'TI'"
break;
case 'SO & TI':
filterType = " AND SOHeader.SOTypeID IN ('SO', 'TI')"
break;
case 'RPL':
filterType = " AND SOHeader.SOTypeID = 'RPL'"
break;
case 'RFC':
filterType = " AND SOHeader.SOTypeID = 'RFC'"
break;
case 'BT':
filterType = " AND SOHeader.SOTypeID = 'BT'"
break;
case 'CW':
filterType = " AND SOHeader.SOTypeID = 'CW'"
break;
case 'CWR':
filterType = " AND SOHeader.SOTypeID = 'CWR'"
break;
case 'CWR & BT & CW':
filterType = " AND SOHeader.SOTypeID IN ('CWR','BT','CW')"
break;
}
}
conn.connect().then(() => {
const req = new sql.Request(conn);
let myBeginQuery = `${numOfQuotes} DISTINCT SOHeader.OrdNbr, soheader.sotypeid, soheader.user6, SOheader.LUpd_DateTime, SOHeader.User3, soheader.crtd_user, SOHeader.S4Future01, SOHeader.SlsperID, SOHeader.TotMerch, SOHeader.CustOrdNbr
FROM SOHeader
INNER JOIN Customer ON SOHeader.CustID = Customer.CustId
INNER JOIN SOLine ON SOHeader.OrdNbr = SOLine.OrdNbr
WHERE soheader.CpnyID = 'AOS'
and Customer.custid = @input_param`;
let myQuery = '';
if (filterType != '') {
myQuery = myBeginQuery + filterType;
}
console.log(myQuery);
當我CONSOLE.LOG(更改爲MyQuery)它仍然是空白的,我認爲我需要promisfy它或東西,因爲這樣的JavaScript執行。任何建議將有幫助謝謝
這絕對不是空白.. – josh