


Berikut ialah artikel pengenalan yang baik tentang Node.js pengenalan nodejs yang hebat , yang akan memberi anda pengenalan yang sangat mudah kepada Node.js dan CouchDB, dan memberi anda contoh untuk melaksanakan perkhidmatan REST untuk Perform CRUD operasi pada penanda halaman, menggunakan CouchDB sebagai pangkalan data.
Artikel ini akan memperkenalkan cara memasang dan mula menggunakan Node.js di bawah Mac OS X. Proses ini akan mengambil masa kira-kira 30 minit Kami juga akan memasang CouchDB dan melaksanakan API REST berdasarkan CouchDB.
Artikel ini menganggap bahawa Git sudah dipasang pada mesin anda Jika tidak, sila rujuk artikel ini untuk memasangnya.
Pasang node.js dan npm
Cara paling mudah ialah pergi ke tapak web rasmi node.js melalui halaman bahagian muat turun nodejs dan pilih pemasang di bawah Mac, yang akan memasang Node.js dan npm (pengurus pakej nod
Selepas pemasangan berjaya, anda boleh menggunakan arahan nod dan npm.
Pasang CouchDB
Oleh kerana artikel ini memerlukan CouchDB untuk menyimpan objek, CouchDB juga perlu dipasang.Memasang CouchDB sedikit lebih menyusahkan, kerana kita perlu memuat turun kod sumber dan kemudian menyusunnya Sebelum itu, kita perlu memasang Homebrew Sila laksanakan arahan berikut:
git clone https://github.com/mxcl/homebrew.git cd homebrew/bin brew install autoconf automake libtool brew install couchdb
Nota penting: CouchDB sebelum ini melaporkan masalah yang mungkin menghalang anda daripada memasangnya Untuk menyelesaikan masalah ini, anda perlu mengedit fail ~/couch/homebrew/Library/Formula/couchdb.rb secara manual:
kelas Couchdb url 'http://www.apache.org/dyn/closer.cgi?path=couchdb/source/1.1.1/apache-couchdb-1.1.1.tar.gz'
laman utama "http://couchdb.apache.org/"
md5 'cd126219b9cb69a4c521abd6960807a6'
Sila ambil perhatian bahawa sumber dalam url perlu dipadamkan Hasil pengubahsuaian akhir adalah seperti berikut:
kelas Couchdb url 'http://www.apache.org/dyn/closer.cgi?path=couchdb/1.1.1/apache-couchdb-1.1.1.tar.gz'
laman utama "http://couchdb.apache.org/"
md5 'cd126219b9cb69a4c521abd6960807a6'
Untuk mendapatkan maklumat lanjut tentang memasang CouchDB pada Mac OS X, sila baca "Memasang CouchDB pada OSX".
Setelah CouchDB disusun, kami boleh melaksanakan ./couchdb secara manual untuk memulakannya Anda boleh membuka alamat http://127.0.0.1:5984/_utils dalam penyemak imbas anda untuk mengesahkan sama ada pemasangan CouchDB berjaya.
Muat Turun Tutorial
Sekarang perisian yang diperlukan telah dipasang, mari teruskan dengan contoh pengenalan Node.js.
Mula-mula kami menggunakan Git untuk mendapatkan kod sumber contoh
git klon https://github.com/indexzero/nodejs-intro.git
Cipta pangkalan data CouchDB
Sebelum memulakan tutorial, kita perlu mencipta pangkalan data CouchDB Mula-mula pastikan CouchDB telah dimulakan, dan kemudian gunakan arahan berikut untuk mencipta pangkalan data:
$ curl -X PUT http://127.0.0.1:5984/pinpoint-dev10
{"ok":true}
Anda boleh melawati http://127.0.0.1:5984/_utils dalam penyemak imbas anda untuk melihat pangkalan data yang baru dibuat.
Terdapat juga panduan hebat untuk CouchDB di sini.
Mulakan tutorial
Contoh nod js dibina dengan cara modular Direktori lib mengandungi banyak modul dan skrip pelayan berada dalam direktori bin.
Sebagai contoh, jika kita ingin memulakan tutorial CouchDB, kita boleh melaksanakan arahan berikut dalam direktori bin:
./server -t 02couchdb -s
Parameter -t membolehkan anda menentukan modul dalam direktori lib untuk dilaksanakan, dan parameter -s digunakan untuk menetapkan pangkalan data pinpoint-dev yang baru kami buat.
sys - gunakan perubahan
Bergantung pada versi Node.js, anda mungkin melihat ralat atau amaran berikut:
v0.7.7-pra
$ ./server -t 02couchdb -s
node.js:247
lempar e; // ralat process.nextTick, atau acara 'error' pada tanda pertama
^
Ralat: Modul "sys" kini dipanggil "util".
di sys.js:1:69
di NativeModule.compile (node.js:572:5)
di Function.require (node.js:540:18)
di Function._load (module.js:297:25)
di Module.require (module.js:357:17)
at require (module.js:373:17)
di Object. (/home/ubuntu/nodejs-intro/bin/server:3:11)
di Module._compile (module.js:444:26)
di Object..js (module.js:462:10)
di Module.load (module.js:351:32)
Untuk mengelakkan masalah ini, anda perlu menggantikan semua panggilan `require("sys")` dengan `require("util")`
Node v0.6.14 tidak akan membuang mesej ralat, tetapi akan menggesa amaran:
v0.6.14
$ ./server -t 02couchdb -s
Modul "sys" kini dipanggil "util". Ia sepatutnya mempunyai antara muka yang serupa.
Tentukan pelayan demo mendengar 02couchdb di http://127.0.0.1:8000
Jalankan tutorial
Apabila anda menjalankan tutorial, beberapa ralat akan digesa:
The "sys" module is now called "util". It should have a similar interface.
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'optimist'
at Function._resolveFilename (module.js:332:11)
at Function._load (module.js:279:25)
at Module.require (module.js:354:17)
at require (module.js:370:17)
at Object. (/Users/ddewaele/Projects/Node/nodejs-intro/bin/server:5:12)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
该教程包含很多依赖,我们需要使用 npm 来下载这些依赖的包。
安装 node 包
Node packages (dependencies) 可通过 npm 命令来安装,例如:
$ npm install optimist npm http GET https://registry.npmjs.org/optimist npm http 200 https://registry.npmjs.org/optimist npm http GET https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz npm http 200 https://registry.npmjs.org/optimist/-/optimist-0.2.8.tgz npm http GET https://registry.npmjs.org/wordwrap npm http 200 https://registry.npmjs.org/wordwrap npm http GET https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz npm http 200 https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz optimist@0.2.8 ../node_modules/optimist └── wordwrap@0.0.2
这些包将被安装到 node_modules 文件夹中:
$ ls -l ../node_modules/ total 0 drwxr-xr-x 10 ddewaele staff 340 Apr 1 18:54 optimist
本文需要安装如下的 node 包:
npm install winston npm install cradle npm install journey npm install optimist
运行教程
进入 bin 目录,通过下面命令来运行教程:
$ ./server -t 02couchdb -s The "sys" module is now called "util". It should have a similar interface. Pinpoint demo server listening for 02couchdb on http://127.0.0.1:8000
然后打开浏览器访问 http://127.0.0.1:8000/bookmarks ,将会看到如下的结果:
这表示服务已经启动并运行,为了在 CouchDB 中添加点测试数据,我们可以使用 http-console 控制台来访问 CouchDB 的 REST 服务。
安装 http-console
有一个非常棒的工具可以帮助你调试服务,该工具名为 http-console ,你可使用 npm 来安装:
sudo npm install -g http-console
然后就可以在命令行中执行该工具,不幸的是当我们执行该命令时报错了:
$ http-console node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead. at Function. (module.js:378:11) at Object. (/usr/local/lib/node_modules/http-console/bin/http-console:6:8) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Array.0 (module.js:479:10) at EventEmitter._tickCallback (node.js:192:40)
很麻烦,我们还需要手工编辑 /usr/local/lib/node_modules/http-console/bin/http-console 文件,然后删除下面这一行:
现在 http-console 就可以启动了,无需任何参数,它将连接到 http://localhost:8080 ,如果你需要指定服务器和端口,把它作为第一个参数传递给 http-console 即可。
请注意我们这里使用了 \json 命令用来设置正确的 content-type:
$ http-console http://127.0.0.1:8000 The "sys" module is now called "util". It should have a similar interface. > http-console 0.6.1 > Welcome, enter .help if you're lost. > Connecting to 127.0.0.1 on port 8000. http://127.0.0.1:8000/> \json http://127.0.0.1:8000/>
访问 REST 服务
在 http-console 中,要执行 GET 请求只需要输入 GET /bookmarks 即可:
http://127.0.0.1:8000/> GET /bookmarks HTTP/1.1 200 OK Date: Sun, 01 Apr 2012 17:23:27 GMT Server: journey/0.4.0 Content-Type: application/json;charset=utf-8 Content-Length: 16 Connection: keep-alive { bookmarks: [] }
你也可以使用 JSON 的片段来执行 POST 请求:
http://127.0.0.1:8000/> POST /bookmarks ... { "url": "http://nodejs.org" } HTTP/1.1 200 OK Date: Thu, 05 Apr 2012 11:45:55 GMT Server: journey/0.4.0 Content-Type: application/json;charset=utf-8 Content-Length: 91 Connection: keep-alive { bookmark: { _id: 'WD-G-1', resource: 'Bookmark', url: 'http://nodejs.org' } }
然后再次执行 GET 请求,你就可以看到新插入的数据了:
http://127.0.0.1:8000/> GET /bookmarks HTTP/1.1 200 OK Date: Sun, 01 Apr 2012 17:23:27 GMT Server: journey/0.4.0 Content-Type: application/json;charset=utf-8 Content-Length: 16 Connection: keep-alive { bookmarks: [ { _rev: '1-cfced13a45a068e95daa04beff562360', _id: 'WD-G-1', resource: 'Bookmark', url: 'http://nodejs.org' } ] }

Python lebih sesuai untuk pemula, dengan lengkung pembelajaran yang lancar dan sintaks ringkas; JavaScript sesuai untuk pembangunan front-end, dengan lengkung pembelajaran yang curam dan sintaks yang fleksibel. 1. Sintaks Python adalah intuitif dan sesuai untuk sains data dan pembangunan back-end. 2. JavaScript adalah fleksibel dan digunakan secara meluas dalam pengaturcaraan depan dan pelayan.

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Peralihan dari C/C ke JavaScript memerlukan menyesuaikan diri dengan menaip dinamik, pengumpulan sampah dan pengaturcaraan asynchronous. 1) C/C adalah bahasa yang ditaip secara statik yang memerlukan pengurusan memori manual, manakala JavaScript ditaip secara dinamik dan pengumpulan sampah diproses secara automatik. 2) C/C perlu dikumpulkan ke dalam kod mesin, manakala JavaScript adalah bahasa yang ditafsirkan. 3) JavaScript memperkenalkan konsep seperti penutupan, rantaian prototaip dan janji, yang meningkatkan keupayaan pengaturcaraan fleksibiliti dan asynchronous.

Enjin JavaScript yang berbeza mempunyai kesan yang berbeza apabila menguraikan dan melaksanakan kod JavaScript, kerana prinsip pelaksanaan dan strategi pengoptimuman setiap enjin berbeza. 1. Analisis leksikal: Menukar kod sumber ke dalam unit leksikal. 2. Analisis Tatabahasa: Menjana pokok sintaks abstrak. 3. Pengoptimuman dan Penyusunan: Menjana kod mesin melalui pengkompil JIT. 4. Jalankan: Jalankan kod mesin. Enjin V8 mengoptimumkan melalui kompilasi segera dan kelas tersembunyi, Spidermonkey menggunakan sistem kesimpulan jenis, menghasilkan prestasi prestasi yang berbeza pada kod yang sama.

Aplikasi JavaScript di dunia nyata termasuk pengaturcaraan sisi pelayan, pembangunan aplikasi mudah alih dan Internet of Things Control: 1. Pengaturcaraan sisi pelayan direalisasikan melalui node.js, sesuai untuk pemprosesan permintaan serentak yang tinggi. 2. Pembangunan aplikasi mudah alih dijalankan melalui reaktnatif dan menyokong penggunaan silang platform. 3. Digunakan untuk kawalan peranti IoT melalui Perpustakaan Johnny-Five, sesuai untuk interaksi perkakasan.

Saya membina aplikasi SaaS multi-penyewa berfungsi (aplikasi edTech) dengan alat teknologi harian anda dan anda boleh melakukan perkara yang sama. Pertama, apakah aplikasi SaaS multi-penyewa? Aplikasi SaaS Multi-penyewa membolehkan anda melayani beberapa pelanggan dari Sing

Artikel ini menunjukkan integrasi frontend dengan backend yang dijamin oleh permit, membina aplikasi edtech SaaS yang berfungsi menggunakan Next.Js. Frontend mengambil kebenaran pengguna untuk mengawal penglihatan UI dan memastikan permintaan API mematuhi dasar peranan

JavaScript adalah bahasa utama pembangunan web moden dan digunakan secara meluas untuk kepelbagaian dan fleksibiliti. 1) Pembangunan front-end: Membina laman web dinamik dan aplikasi satu halaman melalui operasi DOM dan kerangka moden (seperti React, Vue.js, sudut). 2) Pembangunan sisi pelayan: Node.js menggunakan model I/O yang tidak menyekat untuk mengendalikan aplikasi konkurensi tinggi dan masa nyata. 3) Pembangunan aplikasi mudah alih dan desktop: Pembangunan silang platform direalisasikan melalui reaktnatif dan elektron untuk meningkatkan kecekapan pembangunan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna