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

Node+Express项目中addbook.ts访问database.json的相对路径求解

路径填写方案

直接相对于当前文件的相对路径

如果是按照文件层级计算,addbook.ts存放在src/routes/api/下,database.json存放在src/下,需要向上回溯2级目录才能定位到目标文件,对应相对路径为../../database.json。

注意:Node.js 的 fs 模块默认会将相对路径解析为执行 node 命令的工作目录的相对路径,而非当前文件的存放路径,只要你启动项目的终端目录发生变化,直接写上面的相对路径就会报错,因此更推荐用下面的绝对路径拼接写法。

推荐稳定写法

用 Node.js 内置变量拼接出目标文件的绝对路径,完全不受启动目录影响:

import { readFileSync } from 'fs';
import path from 'path';

// __dirname 是当前 addbook.ts 文件所在的目录绝对路径,即 src/routes/api
const dbPath = path.join(__dirname, '../../database.json');
const data = readFileSync(dbPath, 'utf-8');

如果你的项目用的是 ESModule 规范,不支持__dirname,可以用下面的写法替换:

import { readFileSync } from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
const dbPath = path.join(__dirname, '../../database.json');
const data = readFileSync(dbPath, 'utf-8');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:39:02