Rumah > Artikel > hujung hadapan web > Gunakan C untuk menulis modul sambungan untuk node.js_node.js
Prasyarat: Pasang node.js, Python2.7 dan visual studio 2013.
Proses:
Mula-mula pasang alat penjanaan projek GYP, npm install -g node-gyp.
Cipta direktori ujian, yang merupakan direktori kerja kami Cipta direktori src di bawah direktori ini untuk menyimpan kod sumber C. Cipta fail teks baharu bernama binding.gyp Ini ialah fail projek gyp >
#include <node.h> using namespace v8; Handle<Value> Hello(const Arguments& args) { HandleScope scope; return scope.Close(String::New("Hello world!")); } void init(Handle<Object> target) { NODE_SET_METHOD(target, "hello", Hello); } NODE_MODULE(hello, init)
Jika ia berjalan dengan betul, direktori ----build akan muncul, di mana fail projek vs2013 akan dijana untuk anda, supaya anda boleh mengedit dan menyusun dalam vs2013.
Sudah tentu, anda juga boleh terus menggunakan binaan nod-gyp arahan untuk menyusun.
1. C:UsersAdministrator.node-gyp
2. Helo dalam NODE_MODULE(hello, init) ialah nama modul dan perlu konsisten dengan nama fail Jika tidak, tidak akan ada masalah dalam penyusunan tetapi ralat akan berlaku semasa masa jalan. Kerana apabila memerlukan('./hello.node'), ia bukan sahaja mencari fail yang sepadan, tetapi juga sepadan dengan modul yang sepadan.
3. Saya mengikuti buku Pu Ling "Node.js in a Simple Language" dan merujuk kepada beberapa halaman web untuk mengkaji Terdapat item syarat dalam fail projek gyp yang diberikan dalam buku, 'libraries': ['-. lnode.lib'], kerana ayat ini, saya terus mendapat ralat semasa menyusun: tidak dapat membuka node.lib Jelas sekali fail itu wujud, tetapi ia hanya melaporkan ralat saya mencari banyak maklumat tetapi tidak dapat diselesaikan itu. Kemudian saya menyalin node.lib secara langsung Pergi ke direktori kerja dan gunakan baris arahan untuk berjaya menyusun. Tetapi pada vs2013, ralatnya masih sama. Akhirnya, saya pergi ke laman web rasmi dan mendapati tiada satu pun contoh yang menyediakan parameter ini, dan semuanya OK. Tuhan yang dikasihi, siapa yang boleh memberikan penjelasan yang betul? !
Di atas adalah keseluruhan kandungan artikel ini, saya harap anda semua menyukainya.