2018年8月7日 星期二

[SQL Server+Node.js] 建立連線

在Node.js伺服器上要跟Microsoft的SQL Server連線需要套件mssql。
只談連線的話基本上是這樣做的。
===
const mssql = require("mssql");
var dbConfig = {
  user: "<username>",
  password: "<password>",
  server: "localhost\\SQLEXPRESS",
  database: "<database-name>"
};
mssql.connect(dbConfig, (error) => {
  // 連線以後的東西在這邊不講
});
===.
問題在於有些必須做的東西很多人沒講。
這篇可以看到,在Windows的「電腦管理/服務與應用程式」裡可以找到SQL Server的傳輸協定的設定,TCP/IP必須開啟,然後SQL Server Browser也必須開啟。為了重新啟動服務最好直接重新開機。
然而還有一種問題是SQL Server Browser無法開啟(右鍵選單啥都沒有),這種狀況下參考這篇,到「服務」裡找到SQL Server Browser右鍵內容,把他從停用改為自動或啟用。
另外有時候腦袋蠢蠢的,在<database-name>填入資料表的名稱,當然她媽不會動,這種狀況下回傳的錯誤是登入失敗(因為他找不到那個資料庫)。

[JavaScript] select元件手動觸發onchange事件

select元件就是下拉式選單。它的結構長得像這樣。
===
<select>
  <option value="option0">Apple</option>
  <option value="option1">Banana</option>
</select>
===.
要透過JavaScript來改變select元件的值使用的是下面的方法
===
element.value = "<value>";
===.
element指的是select元件。此處的<value>要參考option元件的value值。
到這邊都是好理解的,問題在於這個做法好像有點bug,就是onchange事件不會正確地觸發。因此修改完value以後還要特地去觸發onchange事件。
===
element.value = "<value>";
var ev = document.createElement("HTMLEvents");
ev.initEvent("change", false, true);
element.dispatchEvent(ev);
===.

[HTML] ribody

怕自己忘記,稍微紀錄一下。 各種各種理由(其中一個就是Vue,不能綁定在body上),導致時常需要一個包在body中的div,當作body來用,像這樣: === <body>     <div id="divBody">   ...