Я использую пакет https://www.npmjs.com/package/@marsaud/smb2 для подключения к накопителю NAS по протоколу SMB.
var SMB2 = require('@marsaud/smb2');
// create an SMB2 instance
var smb2Client = new SMB2({
share: 'drivePAth\altmStore',
domain: 'WORKGROUP',
username: 'username',
password: 'password',
});
Это код, который я использовал для подключения, и строка подключения приведена выше.
smb2Client.exists('/dirname/filename.txt', function (err, exists) {
if (err) {
console.log(err);
};
console.log(exists ? "it's there" : "it's not there!");
});
Этот метод работает нормально и дает правильный вывод. Но когда я пытаюсь прочитать или записать какие-либо файлы на диск, используя эти методы
smb2Client.mkdir('username\\', function (err) {
if (err) {
console.log(err);
}
console.log('Directory created!');
});
smb2Client.readdir('username\\dirname', function (err, files) {
if (err) {
console.log(err);
};
console.log(files);
});
Это выдает ошибку следующим образом.
{ Error: connect EINVAL shareIPaddress:445 - Local (0.0.0.0:61234)
at internalConnect (net.js:881:16)
at defaultTriggerAsyncIdScope (internal/async_hooks.js:294:19)
at defaultTriggerAsyncIdScope (net.js:971:9)
at process._tickCallback (internal/process/next_tick.js:61:11)
at Function.Module.runMain (internal/modules/cjs/loader.js:834:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
errno: 'EINVAL',
code: 'EINVAL',
syscall: 'connect',
address: 'shareIPaddress',
port: 445 }
Есть определенные вопросы относительно этого поведения. У кого-нибудь есть идея, почему это выскакивает? Нужно ли включать какой-либо порядок портов для доступа к файловой системе на диске NAS? По умолчанию порты включены для протокола SMB для общего доступа к файлам на диске NAS. Если да, то нужно ли нам что-то еще для подключения к накопителю NAS?
Пожалуйста, направьте меня в правильном направлении. Заранее спасибо.