Notion API,更新資料庫中的勾選框值

這裡將介紹如何使用Notion API來更新Notion資料庫中的勾選框值。 每個條目被視為一個頁面。 假設你已經獲得了該條目,並將其賦值給變數page,則該頁面的id將位於page.id中。 同時假設你已經初始化了Notion客戶端。 import { Client } from '@notionhq/client' //... const notion = new Client({ auth: process.env.NOTION_API_KEY }) 然後你可以通過以下方式將名為"Ready"的勾選框設置為true: await notion.pages.update({ page_id: page.id, properties: { Ready: { checkbox: true, }, }, })

Notion API:如何擷取資料庫中的項目

這篇文章將介紹如何使用官方的Notion API來列出Notion資料庫中的所有項目。 首先,您需要取得Notion實例的參考。 import { Client } from '@notionhq/client' //... const notion = new Client({ auth: process.env.NOTION_API_KEY }) 接下來,您可以呼叫notion.database.query()來擷取項目。 這段程式碼會擷取所有的項目: const postsReady = await notion.databases.query({ database_id: process.env.NOTION_DB_ID, }) 這段程式碼會擷取所有具有名稱為「Ready」且已勾選的核取方塊屬性的項目: const postsReady = await notion.databases.query({ database_id: process.env.NOTION_DB_ID, filter: { and: [ { property: 'Ready', checkbox: { equals: true, }, }, ], }, }) 您可以進一步添加更多篩選規則,並使用or或and邏輯進行組合。 此外,您還可以根據特定屬性進行升序或降序排列項目。 Notion API相當強大,有很多功能可以使用。 詳細的notion.databases.query()官方文件請參閱:https://developers.notion.com/reference/post-database-query

npm 可以在父文件夹中安裝套件

了解如何解決使用 npm 安裝套件時可能遇到的問題 我在我的編程訓練營中遇到一些學生遇到了這個問題,這是我從未注意到的。 這是由於在空文件夾中安裝套件時 npm 的行為所導致的。 我建議使用 npm install <套件名稱> 來安裝套件,比如: npm install my-prime 在一個空文件夾中安裝。 默認情況下,這會創建一個 package.json 文件,將套件作為依賴添加到其中,創建一個 package-lock.json 文件,並將套件安裝在 node_modules 文件夾中。 但是有一些人沒有看到這種情況發生。似乎什麼都沒發生。 事實上發生的是,他們在父文件夾中有一個 package.json 文件和一個 node_modules 文件夾。 也許不僅僅在父文件夾中,而是在更高的文件夾層級中。 也許他們在家目錄下運行了 npm install <套件> 但沒有意識到,可能是為了測試。 npm 會遍歷整個文件夾樹,檢查是否存在包含 package.json 文件或 node_modules 文件夾的文件夾。如果找到這樣的文件夾,則該文件夾將被視為運行 npm 命令的「當前目錄」。 來源 要解決這個問題,最好的解決方法是刪除父文件夾中的 package.json 和 node_modules 文件夾。 這可能是一個錯誤。 另外,您還可以在文件夾中運行 npm init -y 命令,以創建一個空白的 package.json 文件,然後重新運行 npm install <套件> 命令,這時將會按預期運行。

npm 全局或本地安裝套件

套件最適合全局安裝的時機是什麼?為什麼? 本地套件和全局套件的主要區別如下: 本地套件 安裝在執行 npm install <package-name> 的目錄中,並且放置在該目錄下的 node_modules 文件夾中 全局套件 則放置在系統的一個統一場所(具體位置取決於你的配置),不論你在何處運行 npm install -g <package-name> 在你的代碼中,它們的引用方式是一樣的: require('package-name') 那麼什麼時候應該選擇哪種安裝方式呢? 一般而言,所有套件都應該本地安裝。 這樣確保你的電腦中可以有數十個應用程序,每個應用程序都可以運行其所需的不同版本的每個套件。 如果更新一個全局套件,則會使所有專案都使用新的版本,在維護方面可能會帶來一些麻煩,因為某些套件可能與其他依賴關係不相容等等。 每個專案都有自己的本地版套件,即使看起來可能會浪費資源,但與可能產生的負面後果相比,這是微不足道的。 當一個套件提供一個可從 shell(CLI)執行的可執行命令且在多個專案中重複使用時,應該全局安裝該套件。 你也可以本地安裝可執行命令並使用 npx 執行它們,但有些套件最好還是全局安裝。 一些你可能已經全局安裝的流行套件示例包括: npm create-react-app vue-cli grunt-cli mocha react-native-cli gatsby-cli forever nodemon 你可能已經在你的系統上全局安裝了一些套件。你可以在命令行中運行以下命令來查看它們: npm list -g --depth 0

npm 依賴和開發依賴

什麼時候一個 package 是一個依賴(dependency),什麼時候是一個開發依賴(dev dependency)? 當你使用 npm install <package-name> 命令來安裝一個 npm package 時,你是將它安裝為一個 依賴(dependency)。 該 package 會自動列在 package.json 文件的 dependencies 列表中(自 npm 5 版本起:之前需要手動指定 --save)。 當你添加 -D 標誌或 --save-dev 時,你是將它安裝為一個開發依賴(dev dependency),這會將它添加到 devDependencies 列表中。 開發依賴主要是一些僅用於開發的 package,在生產環境中是不需要的。例如測試 package、webpack 或 Babel。 當你進入生產環境時,如果目錄中有一個 package.json 文件,執行 npm install 就會安裝這些 package,因為 npm 假設這是一個開發佈署。 你需要設置 --production 標誌 (npm install --production) 來避免安裝這些開發依賴。

npm-install-previous-package-version

安裝舊版的 npm 套件 學習如何安裝舊版的 npm 套件,這將有助於解決相容性問題。 使用 @ 語法可以安裝舊版的 npm 套件: npm install <package>@<version> 範例: npm install cowsay 安裝 1.3.1 版本(此文章撰寫時)。 使用以下方式安裝 1.2.0 版本: npm install [[email protected]](/cdn-cgi/l/email-protection) 全域套件亦可使用相同方式安裝: npm install -g [[email protected]](/cdn-cgi/l/email-protection) 您可能也有興趣列出套件的所有舊版。可以使用 npm view <package> versions 命令來實現: ❯ npm view cowsay versions [ '1.0.0', '1.0.1', '1.0.2', '1.0.3', '1.1.0', '1.1.1', '1.1.2', '1.1.3', '1.1.4', '1.1.5', '1.1.6', '1.1.7', '1.1.8', '1.1.9', '1.2.0', '1.2.1', '1.3.0', '1.3.1' ]

npm安裝包的位置在哪裡?

如何找出npm安裝包的位置 如果您剛開始使用npm,可以閱讀npm指南,其中包含了很多基本細節。 當您使用npm(或yarn)安裝一個包時,可以執行兩種類型的安裝: 本地安裝 全域安裝 默認情況下,當您輸入npm install命令時,例如: npm install lodash 該包將安裝在當前檔案結構中的node_modules子文件夾下。 同時,npm還會在當前資料夾中的package.json文件的dependencies屬性中添加lodash項目。 使用-g標誌可以執行全域安裝: npm install -g lodash 當這種情況發生時,npm不會將該包安裝在本地文件夾中,而是使用全域位置。 具體在哪裡? npm root -g命令將告訴您在您的機器上的正確位置。 在macOS或Linux中,該位置可能是/usr/local/lib/node_modules。在Windows中,它可能是C:\Users\YOU\AppData\Roaming\npm\node_modules 然而,如果您使用nvm來管理Node.js版本,該位置將不同。 例如,我使用nvm,我的包位置顯示為/Users/flavio/.nvm/versions/node/v8.9.0/lib/node_modules。

npx Node套件執行器

npx是一種非常酷的執行Node代碼的方式,提供了許多有用的功能。 在這篇文章中,我想介紹一個非常強大的命令,從2017年7月開始在npm的5.2版本中可用:npx。 如果你不想安裝npm,你可以單獨安裝npx套件 npx讓你執行使用Node編寫並通過npm註冊表發佈的代碼。 輕鬆運行本地命令 Node開發人員習慣將大多數可執行命令作為全局套件發佈,以便它們能夠在路徑中並立即執行。 這很痛苦,因為實際上你不能安裝不同版本的相同命令。 運行npx 命令名稱將自動在項目的node_modules文件夾中找到正確的命令引用,而無需知道確切的路徑,也無需將套件安裝為全局註冊。 無需安裝的命令執行 npm還有另一個很棒的功能,就是允許在不先安裝它們的情況下運行命令。 這非常有用,主要原因是: 你不需要安裝任何東西 你可以運行不同版本的相同命令,使用@version語法 使用npx的典型演示是通過cowsay命令。cowsay會打印一頭牛,說出你在命令中輸入的內容。例如: cowsay "Hello"將打印以下內容: ____ < Hello > -------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||-----w | || || 現在,如果你之前從npm全局安裝了cowsay命令,否則當你嘗試運行該命令時,將會出錯。 使用npx,你可以在本地執行該npm命令,而無需將其安裝: npx cowsay "Hello" 就能運行了。 現在這只是一個有趣但毫無用處的命令。其他場景包括: 使用vue CLI工具創建新應用程序並運行:npx vue create my-vue-app 使用create-react-app創建新的React應用程序:npx create-react-app my-react-app 等等。 一旦下載完成,下載的代碼將被刪除。 使用不同的Node版本運行代碼 使用@指定版本,並結合node npm套件來達到這個目的: npx [[email protected]](/cdn-cgi/l/email-protection) -v #v6.14.3 npx [[email protected]](/cdn-cgi/l/email-protection) -v #v8.11.3 這有助於避免像nvm或其他Node版本管理工具這樣的工具。 直接從URL運行任意代碼片段 npx並不限制你只能運行npm註冊表中發佈的套件。 你可以運行存儲在GitHub Gist中的代碼,例如: npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32 當然,運行你無法控制的代碼時,你需要小心,因為偉大的力量伴隨著偉大的責任。

Number isNaN() 方法

瞭解 JavaScript Number 物件的 isNaN() 方法 NaN 是一個特殊的情況。一個數字只有在它本身是 NaN 或者是 0 除以 0 的結果時才是 NaN。 在其他所有情況下,我們可以傳入任何值,但它將返回 false: Number.isNaN(NaN) //true Number.isNaN(0 / 0) //true Number.isNaN(1) //false Number.isNaN('Flavio') //false Number.isNaN(true) //false Number.isNaN({}) //false Number.isNaN([1, 2, 3]) //false

Number 的 isSafeInteger() 方法

了解 JavaScript Number 物件的 isSafeInteger() 方法 如果數字超過安全整數的範圍,則可能滿足 Number.isInteger(),但不滿足 Number.isSafeInteger(),這已在上面解釋過。 因此,大於 2^53 和小於 -2^53 的數字是不安全的: Number.isSafeInteger(Math.pow(2, 53)) // false Number.isSafeInteger(Math.pow(2, 53) - 1) // true Number.isSafeInteger(Math.pow(2, 53) + 1) // false Number.isSafeInteger(-Math.pow(2, 53)) // false Number.isSafeInteger(-Math.pow(2, 53) - 1) // false Number.isSafeInteger(-Math.pow(2, 53) + 1) // true