Hướng dẫn nodejs get parent directory - nodejs lấy thư mục mẹ

116

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đang sử dụng Node.js và tôi muốn lấy tên thư mục chính cho một tệp. Tôi có tệp

path.basename(path.dirname(filename))
1.

Tôi muốn nhận

path.basename(path.dirname(filename))
2.

Tôi đã thử:

var path = require('path');
var parentDir = path.dirname(filename);

Nhưng nó trả về

path.basename(path.dirname(filename))
3.

Hướng dẫn nodejs get parent directory - nodejs lấy thư mục mẹ

Đã hỏi ngày 22 tháng 3 năm 2017 lúc 15:29Mar 22, 2017 at 15:29

Những gì bạn muốn là

path.basename(path.dirname(filename))
4:

path.basename(path.dirname(filename))

Đã trả lời ngày 4 tháng 5 năm 2017 lúc 9:57May 4, 2017 at 9:57

Daniel Wolfdaniel WolfDaniel Wolf

Huy hiệu vàng 12k1151 Huy hiệu bạc74 Huy hiệu đồng11 gold badges51 silver badges74 bronze badges

0

Câu trả lời của Daniel Wolf là chính xác, nếu bạn muốn đường dẫn đầy đủ của cha mẹ:

require('path').resolve(__dirname, '..')

Đã trả lời ngày 14 tháng 3 năm 2019 lúc 15:52Mar 14, 2019 at 15:52

Hướng dẫn nodejs get parent directory - nodejs lấy thư mục mẹ

Dirigibledir đủ điều kiệnDirigible

1.57915 Huy hiệu bạc10 Huy hiệu đồng15 silver badges10 bronze badges

const path = require("path")
path.dirname(path.basename(__dirname))

Yeshi

2132 huy hiệu bạc5 huy hiệu đồng2 silver badges5 bronze badges

Đã trả lời ngày 20 tháng 7 năm 2020 lúc 3:03Jul 20, 2020 at 3:03

Hướng dẫn nodejs get parent directory - nodejs lấy thư mục mẹ

1

path.basename(path.dirname(filename))
5 Tài sản không được chấp nhận trong
path.basename(path.dirname(filename))
6. Nếu foo.js được điều hành bởi
path.basename(path.dirname(filename))
7 (ví dụ: somedir/foo.js "),

const path = require("path");

module.exports = path.dirname(require.main.filename);

Kết quả: Một ngày nào đó

Sử dụng yêu cầu.main thay thế

Đã trả lời ngày 5 tháng 7 năm 2020 lúc 6:23Jul 5, 2020 at 6:23

ByakubyakuByaku

2.0191 Huy hiệu vàng16 Huy hiệu bạc27 Huy hiệu đồng1 gold badge16 silver badges27 bronze badges

Trong khi các câu trả lời ở đây đã hoạt động phần nào, tôi thấy việc sử dụng mô-đun đường dẫn ứng dụng phổ biến là điểm neo tốt hơn để chỉ định một đường dẫn.

import { path as arp } from 'app-root-path'
import path from 'path'

const root = path.resolve(arp, '../') // the parent of the root path

export const rootDirname = root

Ví dụ sử dụng như sau:

import { rootDirname } from './functions/src/utils/root-dirname'
import { getJsonFromFile } from './app/utils/get-json-from-file'

const firebaseJson = getJsonFromFile(`${rootDirname}/firebase.json`)

Có thể không phải là câu trả lời tốt nhất ở đây nhưng một tùy chọn không được đề cập bởi các câu trả lời khác.

Đã trả lời ngày 20 tháng 10 năm 2021 lúc 1:53Oct 20, 2021 at 1:53

Hướng dẫn nodejs get parent directory - nodejs lấy thư mục mẹ

danday74danday74danday74

48.1K47 Huy hiệu vàng212 Huy hiệu bạc260 Huy hiệu Đồng47 gold badges212 silver badges260 bronze badges

const path = require('path');

module.exports = path.dirname(process.mainModule.filename)

Sử dụng điều này ở bất cứ đâu để có được thư mục gốc

Hướng dẫn nodejs get parent directory - nodejs lấy thư mục mẹ

Đã trả lời ngày 4 tháng 6 năm 2019 lúc 18:43Jun 4, 2019 at 18:43

C Williamsc WilliamsC Williams

82211 Huy hiệu bạc18 Huy hiệu đồng11 silver badges18 bronze badges

2

Sử dụng nút kể từ ngày 06-2019, tôi gặp phải một vấn đề để truy cập chỉ

path.basename(path.dirname(filename))
8. Vì vậy, thay vào đó, tôi chỉ sửa đổi nó một chút và được sử dụng:

path.dirname(__filename).split(path.sep).pop()

Vì vậy, bây giờ bạn có được tên thư mục của thư mục hiện tại bạn đang ở và không phải là đường dẫn đầy đủ. Mặc dù các câu trả lời trước đây dường như có thể làm việc cho người khác, nhưng đối với tôi, nó gây ra vấn đề vì Node đang tìm kiếm một const hoặc một biến nhưng không thể tìm thấy một biến.

Đã trả lời ngày 19 tháng 6 năm 2019 lúc 8:45Jun 19, 2019 at 8:45

Cách đơn giản nhất mà không có bất kỳ mô -đun nút như đường dẫn. Bạn có thể dễ dàng làm theo cách sau để có được tên thư mục gốc.

var rootFolder = __dirname.split('/').pop();
console.log(rootFolder);

Đã trả lời ngày 8 tháng 8 năm 2020 lúc 11:41Aug 8, 2020 at 11:41

Hướng dẫn nodejs get parent directory - nodejs lấy thư mục mẹ

Vinodh Ramvinodh RamVinodh Ram

6591 Huy hiệu vàng9 Huy hiệu bạc21 Huy hiệu đồng1 gold badge9 silver badges21 bronze badges

Giải pháp

path.basename(path.dirname(filename))
9 điển hình không hoạt động trong phạm vi ESM. Để di chuyển một cấp cao hơn trong cây thư mục, tôi đã đưa ra giải pháp sau:

path.basename(path.dirname(filename))
0

Nếu bạn chỉ cần đường dẫn thư mục tuyệt đối mà tệp nằm trong, bạn có thể bỏ cuộc gọi

require('path').resolve(__dirname, '..')
0.

Đã trả lời ngày 1 tháng 8 lúc 10:40Aug 1 at 10:40

Hướng dẫn nodejs get parent directory - nodejs lấy thư mục mẹ

Tom Böttgertom BöttgerTom Böttger

4337 Huy hiệu bạc10 Huy hiệu đồng7 silver badges10 bronze badges