All Products
Search
Document Center

Alibaba Cloud SDK:FAQ tentang Alibaba Cloud SDK untuk Node.js

Last Updated:Jun 22, 2026

Topik ini menyediakan jawaban atas pertanyaan umum mengenai integrasi dan penggunaan Alibaba Cloud SDK untuk Node.js guna meningkatkan efisiensi pengembangan.

Prasyarat

  • Node.js 8.x atau versi yang lebih baru telah diinstal di lingkungan pengembangan Anda.

  • API Alibaba Cloud dapat diakses melalui jaringan Anda.

Ikhtisar

Pertanyaan dan solusi

Bagaimana cara menangani error AccessKey?

Masalah: Pesan error berikut dikembalikan setelah menjalankan kode, yang menunjukkan bahwa pasangan AccessKey tidak dikonfigurasi dengan benar.

  • Alibaba Cloud SDK V2.0 untuk Node.js: Cannot read properties of undefined (reading 'getCredential').

  • Alibaba Cloud SDK V1.0 untuk Node.js: AssertionError [ERR_ASSERTION]: must pass "config.accessKeyId".

Solusi:

  1. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi.

    Linux/macOS

    echo $ALIBABA_CLOUD_ACCESS_KEY_ID
    echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

    Windows

    echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
    echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%

    Jika pasangan AccessKey yang valid dikembalikan, berarti variabel lingkungan telah dikonfigurasi dengan benar. Jika tidak ada pasangan AccessKey atau pasangan AccessKey yang tidak valid dikembalikan, konfigurasikan variabel lingkungan sesuai kebutuhan. Untuk informasi selengkapnya, lihat Konfigurasi variabel lingkungan di Linux, macOS, dan Windows.

  2. Periksa adanya error terkait pasangan AccessKey dalam kode.

    Contoh permintaan error:

     let config = new OpenApi.Config({
          accessKeyId: process.env['yourAccessKeyID'],
          accessKeySecret: process.env['yourAccessKeySecret'],
        });

    Contoh permintaan sukses:

    let config = new OpenApi.Config({
          accessKeyId: process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'],
          accessKeySecret: process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'],
        });
    Catatan

    Ekspresi process.env['ALIBABA_CLOUD_ACCESS_KEY_ID'] dan process.env['ALIBABA_CLOUD_ACCESS_KEY_SECRET'] mengambil nilai dari variabel lingkungan masing-masing.

    Penting

    Untuk mencegah risiko keamanan, jangan tulis pasangan AccessKey dalam kode yang digunakan di lingkungan produksi.

Apa yang harus saya lakukan jika pesan error "tsc: Fail to recognize the tsc command as the name of a cmdlet, a function, a script, or a executable program..." muncul setelah menjalankan perintah tsc?

PS C:\Users\issuser\Downloads\69351a7d-c9ef-417c-8986-a371cd208ece-TypeScript> tsc
tsc : The term 'tsc' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ tsc
+ ~~~
    + CategoryInfo          : ObjectNotFound: (tsc:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Penyebab:

  1. Variabel lingkungan PATH tidak dikonfigurasi dengan benar: Jalur file tsc yang diinstal secara global tidak ditambahkan ke variabel lingkungan PATH.

  2. Kebijakan eksekusi PowerShell: Kebijakan eksekusi PowerShell default mungkin diatur ke Restricted, yang melarang menjalankan skrip .ps1.

  3. Variabel lingkungan PATH tidak dikonfigurasi dengan benar: Jalur file tsc yang diinstal secara global, seperti D:\node.js\node_global, tidak ditambahkan ke variabel lingkungan PATH.

Solusi:

  1. Periksa apakah TypeScript diinstal secara global:

    npm list -g typescript

    Jika output kosong atau menunjukkan bahwa TypeScript belum diinstal, berarti TypeScript belum diinstal dengan benar.

  2. Jalankan perintah npm install -g typescript untuk menginstal TypeScript secara global.

  3. Jalankan perintah berikut untuk mengetahui jalur instalasi global npm:

    npm config get prefix   # Contoh output: D:\node.js\node_global
  4. Gunakan jalur yang dikembalikan dalam perintah berikut untuk memeriksa apakah file tsc ada di direktori tersebut:

    ls D:\node.js\node_global | Select-String 'tsc'
  5. Jalankan perintah berikut untuk memeriksa kebijakan eksekusi PowerShell:

    Get-ExecutionPolicy

    Jika output adalah Restricted, berarti PowerShell melarang menjalankan skrip.

  6. Ubah kebijakan eksekusi menjadi RemoteSigned agar skrip dapat dijalankan.

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

    Jalankan kembali perintah Get-ExecutionPolicy untuk memeriksa kebijakan eksekusi. Output yang diharapkan adalah RemoteSigned.

  7. Tentukan variabel lingkungan PATH untuk sesi saat ini di terminal Anda:

    $env:Path += ";D:\node.js\node_global"
  8. Periksa apakah variabel lingkungan PATH berisi jalur global tersebut:

    $env:Path -split ';' | Select-String 'node_global'
  9. Jalankan perintah tsc untuk mengompilasi file TypeScript .ts menjadi file JavaScript .js berdasarkan file konfigurasi tsconfig.json.

Catatan

Ganti jalur D:\node.js\node_global pada contoh dengan jalur aktual yang dikembalikan oleh perintah npm config get prefix.

Apa yang harus saya lakukan jika permintaan API mengalami timeout dan pesan "Error: connect ETIMEDOUT" dikembalikan?

Penyebab umum dan solusi:

Timeout panggilan API dapat disebabkan oleh berbagai faktor. Bagian berikut menjelaskan penyebab umum dan solusi yang sesuai:

Penyebab 1: Masalah koneksi jaringan

Penyebab: Permintaan tidak dapat mencapai server karena koneksi jaringan antara client dan server gagal atau jaringan tidak stabil.

Solusi:

Jalankan perintah ping atau curl untuk menguji konektivitas antara host lokal dan titik akhir layanan cloud. Misalnya, jalankan perintah ping dysmsapi.aliyuncs.com atau curl -v https://dysmsapi.aliyuncs.com untuk menguji konektivitas antara host lokal Anda dan titik akhir API Short Message Service (SMS).

  • Jika perintah mengalami timeout atau tidak menerima respons, periksa kebijakan pemblokiran pada firewall atau router lokal Anda.

  • Jika respons dikembalikan, kami menyarankan Anda menentukan periode timeout yang sesuai untuk mencegah kegagalan permintaan akibat konfigurasi timeout yang tidak tepat. Untuk informasi selengkapnya, lihat Konfigurasi periode timeout. Contoh kode:

    JavaScript

    // Buat instans RuntimeOptions dan tentukan parameter waktu proses. 
        const runtime = new RuntimeOptions({
            // Konfigurasi periode timeout untuk permintaan koneksi.
            connectTimeout: 10000,
        });

    TypeScript

    // Buat instans RuntimeOptions dan tentukan parameter waktu proses. 
            const runtime = new $Util.RuntimeOptions({
                // Konfigurasi periode timeout untuk permintaan koneksi.
                connectTimeout: 10000,
            });
Penyebab 2: Waktu pemrosesan permintaan yang lama

Deskripsi: Durasi pemrosesan permintaan API melebihi periode timeout baca yang ditentukan.

Solusi: Konfigurasi periode timeout agar sesuai dengan waktu respons API yang lebih lama. Untuk informasi selengkapnya, lihat Konfigurasi periode timeout. Misalnya, Anda dapat mengonfigurasi parameter timeout baca untuk memperpanjang periode timeout baca. Contoh kode:

JavaScript

// Buat instans RuntimeOptions dan tentukan parameter waktu proses. 
    const runtime = new RuntimeOptions({
        // Konfigurasi periode timeout untuk permintaan baca.
        readTimeout: 10000,
    });

TypeScript

// Buat instans RuntimeOptions dan tentukan parameter waktu proses. 
        const runtime = new $Util.RuntimeOptions({
            // Konfigurasi periode timeout untuk permintaan baca.
            readTimeout: 10000,
        });

Apa yang harus saya lakukan jika error "MissingRequiredParameter" dilaporkan saat memanggil operasi API?

Dalam contoh ini, operasi SendSms dari layanan Short Message Service (SMS) dipanggil.

  • Buka halaman API Debugging di OpenAPI Explorer, lalu pilih produk dan API.

  • Periksa apakah semua parameter yang diperlukan seperti phoneNumbers dan signName telah ditentukan dalam objek permintaan yang dibuat. Dalam contoh ini, objek SendSmsRequest digunakan.

  • Verifikasi bahwa semua parameter yang diperlukan telah ditentukan berdasarkan referensi API.

  • Pastikan nilai parameter yang diperlukan valid. Misalnya, periksa apakah nomor ponsel menggunakan format yang valid.

  • Sebelum SDK mengirim permintaan API, SDK secara otomatis memverifikasi parameter. Jika satu atau beberapa parameter yang diperlukan tidak ditentukan, error seperti MissingRequiredParameter akan dilaporkan. Misalnya, jika parameter phoneNumbers tidak ditentukan, error "MissingPhoneNumbers: code: 400" akan dilaporkan. Dalam kasus ini, tentukan parameter tersebut berdasarkan pesan error.

JavaScript

let sendSmsRequest = new Dysmsapi20170525.SendSmsRequest({
      phoneNumbers: '<YOUR_VALUE>',
      signName: '<YOUR_VALUE>',
      templateCode: '<YOUR_VALUE>',
    });

TypeScript

let sendSmsRequest = new $Dysmsapi20170525.SendSmsRequest({
      phoneNumbers: "<YOUR_VALUE>",
      signName: "<YOUR_VALUE>",
      templateCode: "<YOUR_VALUE>",
    });

Apa yang harus saya lakukan jika gagal memanggil operasi API karena operasi tersebut tidak didukung di wilayah tertentu dan pesan "getaddrinfo ENOTFOUND" dikembalikan?

Pastikan layanan yang Anda panggil tersedia di wilayah yang dipilih. Anda dapat menemukan titik akhir layanan yang benar di OpenAPI Explorer. Pastikan Anda menggunakan titik akhir yang benar.

Di bilah navigasi atas OpenAPI Explorer, pilih Short Message Service. Di halaman utama produk, buka tab Service area list. Format titik akhir adalah [product_code].[region_id].aliyuncs.com. Tabel tersebut mencantumkan setiap ID wilayah (seperti cn-beijing, cn-hangzhou, dan cn-shanghai) beserta titik akhir layanan yang sesuai (seperti dysmsapi.aliyuncs.com).

Bagaimana cara menangani error yang dilaporkan oleh perintah npm install?

Pastikan Node.js dan npm telah diinstal dengan benar. Untuk informasi selengkapnya, lihat Instal Node.js di Windows.

Kemungkinan penyebab:

  • Konfigurasi sumber gambar (registry) mengalami konflik. Konfigurasi npm global menggunakan sumber pihak ketiga, seperti Taobao, tetapi tidak mengonfigurasi sumber resmi secara independen untuk cakupan @alicloud.

  • Masalah cache atau jaringan menyebabkan kerusakan pada cache lokal npm, atau kebijakan jaringan seperti firewall perusahaan memblokir permintaan ke sumber registry.

  • Versi paket tidak tersedia. Misalnya, versi yang ditentukan 3.1.1 tidak tersedia di sumber registry.

Solusi:

  1. Jalankan perintah berikut untuk membersihkan cache npm guna memperbaiki kerusakan cache, lalu instal ulang SDK.

    npm cache clean --force
  2. Gunakan sumber npm resmi.

    1. Konfigurasikan sumber resmi untuk cakupan @alicloud. Jalankan perintah berikut untuk mengonfigurasi sumber npm hanya untuk paket yang diawali dengan @alicloud.

      npm config set @alicloud:registry=https://registry.npmjs.org
    2. Jalankan perintah berikut untuk memeriksa konfigurasi npm, dan pastikan cakupan tersebut berlaku:

      npm config get @alicloud:registry
      # Output yang diharapkan: https://registry.npmjs.org
    3. Jalankan perintah npm install @alicloud/XXX untuk menginstal Alibaba Cloud SDK.

  3. Periksa sumber registry Alibaba Cloud. Jalankan perintah berikut untuk sementara beralih ke sumber registry yang diinginkan (opsional):

    # Dalam contoh ini, SDK SMS diinstal.
    npm install @alicloud/dysmsapi20170525@3.1.1 --registry=https://registry.npmmirror.com
Catatan

Setelah SDK diinstal, npm mengembalikan pesan seperti 9 vulnerabilities (6 moderate, 3 high). Penyebab dan solusi:

Penyebab: Paket dependensi pihak ketiga dari SDK, seperti axios atau lodash, sudah usang dan mengandung kerentanan yang diketahui.

Solusi: Jalankan perintah npm audit fix untuk memulai perbaikan otomatis. npm secara otomatis melakukan upgrade ke versi yang kompatibel yang memiliki lebih sedikit atau tanpa kerentanan.

Bagaimana cara menyelesaikan konflik versi paket dependensi?

  • Jalankan perintah npm ls untuk melihat struktur dependensi dan pastikan tidak terjadi konflik versi.

  • Hapus direktori node_modules dan file package-lock.json, lalu instal ulang dependensi.

 rm -rf node_modules package-lock.json
 npm install

Daftar periksa exception dasar Node.js

Pesan error

Kemungkinan penyebab

Solusi

TypeError

Tipe variabel atau ekspresi tidak sesuai ekspektasi.

Verifikasi bahwa tipe variabel atau ekspresi sesuai ekspektasi. Anda dapat menggunakan pernyataan kondisional atau metode pemeriksaan tipe seperti typeof untuk menangani exception ini.

SyntaxError

Sintaksis kode tidak valid.

Verifikasi bahwa sintaksis kode benar. Anda dapat menggunakan editor kode atau tool pengembangan untuk mendeteksi dan memperbaiki error sintaksis.

ReferenceError

Variabel yang direferensikan tidak ada.

Pastikan variabel yang ingin Anda referensikan telah didefinisikan dan diinisialisasi. Anda dapat menggunakan pernyataan kondisional atau mekanisme penanganan exception untuk menangani exception ini.

RangeError

Nilai yang ditentukan berada di luar rentang yang valid. Misalnya, indeks array di luar batas atau fungsi rekursif dipanggil terlalu banyak kali.

Pastikan nilai yang ditentukan, seperti indeks array atau kedalaman fungsi rekursif, berada dalam rentang yang valid. Anda dapat menggunakan pernyataan kondisional atau mekanisme penanganan exception untuk menangani exception ini.

URIError

URI tidak valid atau terjadi error selama proses encoding.

Pastikan Anda menggunakan URI yang valid atau proses encoding mengikuti spesifikasi yang relevan. Anda dapat menggunakan pernyataan kondisional atau metode encoding URI tertentu untuk menangani exception ini.

Dukungan teknis

Solusi untuk masalah di atas dapat membantu Anda menggunakan Alibaba Cloud SDK dengan lebih baik. Jika Anda mengalami masalah lain, Anda dapat menghubungi dukungan teknis Alibaba Cloud dengan cara berikut: