You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JavaScript调用Notion API查询数据库仅返回属性ID问题

解决Notion JS SDK查询数据库仅返回属性ID的问题

问题分析

你遇到的情况是:使用Notion官方JavaScript SDK查询数据库时,返回的页面属性仅包含id字段,但相同的请求在Postman中能获取完整属性内容。这通常是由于SDK默认使用的API版本较低,或者SDK版本未更新导致的响应结构差异。

解决方案

1. 更新Notion SDK到最新版本

旧版本的SDK可能存在响应解析或API版本兼容问题,先执行更新:

npm install @notionhq/client@latest

2. 显式指定最新的Notion API版本

初始化Client时,指定当前最新的API版本(Notion API版本以日期命名,当前推荐使用2022-06-28或更高):

const dotenv = require('dotenv').config()
const {Client} = require('@notionhq/client')

const notion = new Client({
    auth: process.env.NOTION_TOKEN,
    notionVersion: '2022-06-28' // 指定最新API版本
})

const database_id = process.env.NOTION_DATABASE_ID

const getVideos = async () => {
  const {results} = await notion.databases.query({
    database_id: database_id,
  })
  const videos = results.map((page) => {
    console.log(page.properties) // 现在应该能看到完整属性结构
  })
}

getVideos()

3. 验证属性内容

如果属性本身没有值(比如标题为空、日期未设置),Notion API仍会仅返回id和type字段,这属于正常情况。你可以检查数据库中对应页面的属性是否已填充内容,或者通过访问属性的type字段来获取具体值:

// 示例:获取名为"Name"的标题属性和"Publish_Date"的日期属性内容
const videos = results.map((page) => {
  const name = page.properties.Name.title?.[0]?.plain_text || '无标题'
  const publishDate = page.properties.Publish_Date.date?.start || '未设置日期'
  return { name, publishDate }
})
console.log(videos)

内容的提问来源于stack exchange,提问作者Krishna2752

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 11:54:24