__Dirname ./ arasındaki fark nedir node.js?
Node.js programlama ve bir yerde geçerli dizin ilgili bulunan dosyaları başvururken, 6 ** sadece normal yerine __dirname
değişken kullanmak için bir neden var mı? Kullanıyorum/. şimdiye kadar benim kod sadece __dirname
varlığını keşfetti ve temelde dönüştürmek için akıllı olup olmayacağını bilmek istiyorum ./'bunun için s, ve eğer öyleyse, neden bu akıllı bir fikir olacaktır.
CEVAP
./
geçerli dizin, require()
işlevi dışında başvuruyor. require()
, kullanırken hangi çağrıldı dosya dizinine ./
çevirir. __dirname
her zaman kullanılır dosyasının dizin.
Aşağıdaki dosya yapısı ile örneğin
/home/user/dir/files/config.json
{
"hello": "world"
}
/home/user/dir/files/somefile.txt
text file
/home/user/dir/dir.js
var fs = require('fs');
console.log(require('./files/config.json'));
console.log(fs.readFileSync('./files/somefile.txt', 'utf8'));
19 ** /home/user/dir
node dir.js
çalıştırmak alacağım
{ hello: 'world' }
text file
Ama /home/user/
aynı komut çalıştırdığımda alıyorum
{ hello: 'world' }
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: ENOENT, no such file or directory './files/somefile.txt'
at Object.openSync (fs.js:228:18)
at Object.readFileSync (fs.js:119:15)
at Object.<anonymous> (/home/user/dir/dir.js:4:16)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array.0 (module.js:470:10)
at EventEmitter._tickCallback (node.js:192:40)
./
require
ile çalıştı ama fs.readFileSync
için değil. Bu durumda basılı belge *28,* ** 29 çevirir /home/user/
çünkü. Ve /home/user/files/somefile.txt
yok.
Node.js ve io.js arasındaki fark nedir...
Bir URI, URL ve URN arasındaki fark ne...
Aramak ve uygulamak arasındaki fark ne...
@Staticmethod ve @Python classmethod a...
Match_parent ve fill_parent arasındaki...