Pemasangan persekitaran tutorial Nodejs dan operation_node.js

WBOY
Lepaskan: 2016-05-16 16:30:45
asal
1522 orang telah melayarinya

Biarkan nodeJS berjalan

Langkah pertama sudah tentu adalah untuk memasang persekitaran nodeJS Kini lebih pantas untuk memasang nodeJS pada tetingkap Hanya muat turunnya terus:

http://www.nodejs.org/download/

Muat turun di sini mengikut keperluan Selepas muat turun selesai, hanya pergi ke langkah seterusnya. Selepas itu, kita akan mempunyai persekitaran nodeJS

Langkah kedua, untuk memudahkan operasi kami yang seterusnya, kami terus mencipta blog folder pada pemacu D

Kemudian buka alat baris arahan windows, masukkan pemacu d, dan masukkan:

Salin kod Kod adalah seperti berikut:
express -e blog

Kemudian mungkin terdapat pakej bergantung di dalam Kita perlu memasukkan direktori blog untuk memasang (konfigurasi pemasangan disediakan oleh package.json):

Salin kod Kod adalah seperti berikut:
npm install

Dengan cara ini, pakej kebergantungan kami telah dimuat turun Pakej kebergantungan, fail pakej java dan fail .net bll haruslah konsep yang sama

Pada masa ini, program kami sedia untuk dijalankan:

Salin kod Kod adalah seperti berikut:
apl nod

Salin kod Kod adalah seperti berikut:
D:blog>node appExpress pelayan mendengar pada port 3000

Apabila anda membuka penyemak imbas pada masa ini, akan ada reaksi:

Di sini kami menggunakan ekspres (rangka kerja pembangunan web nodeJS yang popular) dan enjin templat ejs

Struktur fail

Struktur direktori fail permulaan adalah seperti berikut:

app.js ialah fail masukan

package.json ialah fail pergantungan modul Apabila kami menggunakan pemasangan npm, ia akan memuat turun pakej berkaitan daripada Internet berdasarkan konfigurasinya

node_modules ialah fail modul yang dimuat turun (package.json)

menyimpan fail sumber statik awam

laluan menyimpan fail penghalaan

melihat fail templat paparan berkaitan kedai

Dengan cara ini, struktur direktori asas kami keluar. Mari kita bercakap secara ringkas tentang direktori node_modules

nod_modules/ejs

Seperti yang baru kami katakan, modul yang dimuat turun disimpan di sini secara terang-terangan, ia adalah koleksi fail js

Salin kod Kod adalah seperti berikut:

var parse = exports.parse = fungsi(str, pilihan){
  var options = pilihan || {}
    , buka = ​​options.open || eksport.terbuka || '<%'
    , tutup = pilihan.tutup || eksport.tutup || '%>'
    , nama fail = options.filename
    , compileDebug = options.compileDebug !== false
    , buf = "";

  buf = 'var buf = [];';
  if (false !== options._with) buf = 'nwith (lokal || {}) { (function(){ ';
  buf = 'n buf.push('';

  var lineno = 1;

  var consumeEOL = palsu;
  untuk (var i = 0, len = str.length; i < len; i) {
    var stri = str[i];
    if (str.slice(i, open.length i) == buka) {
      i = buka.panjang
 
      var prefix, postfix, line = (compileDebug ? '__stack.lineno=' : '') lineno;
      suis (str[i]) {
        kes '=':
          awalan = "', melarikan diri((" baris ', ';
          postfix = ")), '";
          saya;
          rehat;
        kes '-':
          awalan = "', (" baris ', ';
          postfix = "), '";
          saya;
          rehat;
        lalai:
          awalan = "');" baris ';';
          postfix = "; buf.push('";
      }

      var end = str.indexOf(close, i)
        , js = str.substring(i, end)
        , mula = i
        , sertakan = null
        , n = 0;

      jika ('-' == js[js.length-1]){
        js = js.substring(0, js.length - 2);
        consumeEOL = benar;
      }

      jika (0 == js.trim().indexOf('include')) {
        nama var = js.trim().slice(7).trim();
        jika (!nama fail) buang Ralat baharu('pilihan nama fail diperlukan untuk termasuk');
        var path = resolveInclude(nama, nama fail);
        include = read(path, 'utf8');
        include = exports.parse(include, { nama fail: path, _with: false, open: open, close: close, compileDebug: compileDebug });
        buf = "' (function(){" sertakan "})() '";
        js = '';
      }

      manakala (~(n = js.indexOf("n", n))) n , lineno ;
      if (js.substr(0, 1) == ':') js = filtered(js);
      jika (js) {
        if (js.lastIndexOf('//') > js.lastIndexOf('n')) js = 'n';
        buf = awalan;
        buf = js;
        buf = postfix;
      }
      i = akhir - mula tutup.panjang - 1;

} lain jika (stri == "\") {
buf = "\\";
} lain jika (stri == "'") {
buf = "\'";
} else if (stri == "r") {
// abaikan
} else if (stri == "n") {
Jika (mengambil EOL) {
         consumeEOL = palsu;
} lain {
buf = "\n";
         lineno ;
}
} lain {
       buf = stri;
}
}

if (false !== options._with) buf = "'); })();n} nreturn buf.join('');";
else buf = "');nreturn buf.join('');";
Kembalikan buf;
};

Sebagai contoh, kami menggunakan templat ejs dan modul ekspres di sini, dan kemudian kami secara ingin tahu masuk ke program ejs untuk melihat perbezaannya

Selepas membuka ejs.js, mari kita lihat beberapa kod: Kami sudah biasa dengan kod ini dengan idea yang sama seperti kod enjin templat garis bawah, yang menghuraikan templat menjadi rentetan

.

Kemudian tukarkannya kepada fungsi melalui kaedah Fungsi eval atau baharu, dan masukkan objek data anda sendiri untuk analisis mudah

Mengenai aliran kerja khusus, kami tidak tahu lagi. Kami hanya boleh mempelajarinya kemudian

app.js

Sebagai fail masukan, app.js memainkan peranan penting:

Salin kod Kod adalah seperti berikut:
/**
 * Kebergantungan modul.
 */
var express = memerlukan('express');

var route = require('./routes');
var user = require('./routes/user');
var http = memerlukan('http');
var path = memerlukan('path');

apl var = ekspres();

// semua persekitaran

app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('lihat enjin', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));

// pembangunan sahaja

if ('pembangunan' == app.get('env')) {
app.use(express.errorHandler());
}

app.get('/', routes.index);

app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){

console.log('Pelayan Ekspres mendengar pada port ' app.get('port'));
});

Kami memuatkan modul ekspres dan http melalui arahan require() dan akan memuatkan fail templat seperti pengguna indeks dalam direktori laluan

app.set('port', process.env.PORT || 3000) adalah untuk menetapkan port pada permulaan

app.set('views', __dirname '/views') adalah untuk menetapkan laluan untuk menyimpan fail templat, dengan __dirname ialah pembolehubah global, yang menyimpan direktori di mana skrip semasa berada seperti ini:

Salin kod Kod adalah seperti berikut:
console.log(__dirname);//Tambah kod berikut pada index.js
/**
D:blog>apl nod
Pelayan ekspres li
D:blogroutes
*/


Bagaimana __dirname ini diperoleh, kita tidak perlu ambil perhatian buat masa ini

app.set('lihat enjin', 'ejs') menetapkan enjin templat kepada ejs

app.use(express.favicon()) adalah untuk menetapkan ikon Jika anda ingin mengubah suainya, pergi sahaja ke fail imej di bawah

app.use(express.logger('dev')); express bergantung pada connect, jadi middleware terbina dalam akan mengeluarkan beberapa log

app.use(express.json()); digunakan untuk menghuraikan kandungan permintaan, di mana rentetan akan ditukar secara dinamik menjadi objek json

app.use(express.methodOverride()); connect mempunyai middleware terbina dalam untuk mengendalikan permintaan pos dan boleh menyamar kaedah http seperti put

app.use(app.router); Peraturan penghuraian penghala

app.use(express.static(path.join(__dirname, 'public')))); sambungkan middleware terbina dalam, tetapkan awam dalam direktori root untuk menyimpan fail statik

Salin kod Kod adalah seperti berikut:
if ('pembangunan' == app.get('env')) {
app.use(express.errorHandler());
}


Ayat ini bermaksud bahawa mesej ralat harus dikeluarkan semasa pembangunan

Salin kod Kod adalah seperti berikut:

app.get('/', routes.index);
app.get('/users', user.list);

Dua ayat ini ialah fail pemprosesan khusus pada masa akses Contohnya, apabila mengakses terus di sini, akses lalai ialah route.index

Kemudian data templat sebenarnya dihuraikan secara dalaman:

Salin kod Kod adalah seperti berikut:

exports.index = fungsi (req, res) {
console.log(__nama);
res.render('index', { title: 'Express' });
};

Akhir sekali, kod di atas akan dipanggil untuk mencipta pelayan http dan mendengar port 3000. Selepas berjaya, ia boleh diakses di halaman web

Penghalaan

Kami menggunakan kaedah ini untuk membina penghalaan lebih awal

Salin kod Kod adalah seperti berikut:
app.get('/', routes.index) ;

Kod di atas boleh digantikan dengan kod ini (ditulis dalam apl)

Salin kod Kod adalah seperti berikut:

app.get('/', function (req, res) {
res.render('index', { title: 'Express' });
});

Kod ini bermakna apabila mengakses halaman utama, enjin templat ejs dipanggil untuk memaparkan fail templat index.ejs

Sekarang mari buat beberapa pengubahsuaian Kod di atas melaksanakan fungsi penghalaan, tetapi kami tidak boleh meletakkan kod berkaitan penghalaan ke dalam apl Jika terdapat terlalu banyak laluan, apl akan menjadi kembung, jadi kami meletakkan konfigurasi yang berkaitan indeks

Jadi padamkan fungsi penghalaan yang berkaitan dalam apl dan tambah kod pada penghujung apl:

Salin kod Kod adalah seperti berikut:
laluan(aplikasi);

Kemudian ubah suai index.js

Salin kod Kod adalah seperti berikut:

module.exports = fungsi(apl) {
app.get('/', function (req, res) {
res.render('index', { title: 'Express' });
});
};

Belum jelas lagi cara kod ini disusun, jadi saya tidak akan memberi perhatian kepadanya. Kami akan melihatnya kemudian

Peraturan Penghalaan

Express merangkumi pelbagai permintaan http biasanya kami menggunakan get/post.

Salin kod Kod adalah seperti berikut:

app.get();
app.post();

Parameter pertama ialah laluan permintaan, parameter kedua ialah fungsi panggil balik, atau dua parameter ialah permintaan dan respons

Kemudian, terdapat peraturan berikut untuk permintaan (permintaan)

req.query mengendalikan mendapatkan permintaan dan mendapatkan mendapatkan parameter permintaan

req.params mengendalikan permintaan dapatkan atau hantar dalam bentuk /:xxx

req.body memproses permintaan pos dan mendapatkan badan permintaan pos

req.params mengendalikan permintaan mendapatkan dan menyiarkan, tetapi keutamaan carian ialah req.params->req.body->req.query

Peraturan laluan juga menyokong ungkapan biasa, kami akan membincangkan butirannya kemudian...

Tambah peraturan penghalaan

Apabila kami melawati pautan yang tidak wujud:

Oleh kerana tiada peraturan penghalaan untuk /y, dan ia tidak menyebut fail di bawah awam, jadi ia adalah 404

Kini kami menambah laluan yang berkaitan dalam index.js:

Salin kod Kod adalah seperti berikut:

module.exports = fungsi (apl) {
app.get('/', function (req, res) {
res.render('index', { title: 'Express' });
});
app.get('/y', function (req, res) {
res.send('Ye Xiaochai');
});
};

Halaman saya bercelaru di sini:

Sebabnya ialah selepas memuat turun, fail saya dikodkan dalam gbk. Kami hanya perlu menukarnya kepada utf-8. Kami tidak akan mengambil berat tentang enjin templat

Fungsi pendaftaran

Di sini kami mengikuti blogger asal untuk mencipta fungsi pendaftaran yang mudah Di sini kami menggunakan mongo db sebagai pangkalan data, dan kami akan menambah baik fungsi dalam urutan kemudian

Buat laluan daftar baharu dan cipta templat daftar baharu untuknya, jadi mari kita mulakan

① Cipta laluan baharu dalam indeks

Salin kod Kod adalah seperti berikut:
app.get('/register', function (req, res) {
res.render('index', { tajuk: 'Halaman pendaftaran' });
});

Salin kod Kod adalah seperti berikut:
module.exports = fungsi (apl) {
app.get('/', function (req, res) {
res.render('index', { title: 'Express' });
});
app.get('/y', function (req, res) {

res.send('Ye Xiaochai');
});

app.get('/register', function (req, res) {

res.render('daftar', { tajuk: 'Halaman pendaftaran' });

});



Salin kod Kod adalah seperti berikut:



<%= tajuk %>



<%= tajuk %>



                       
Nama pengguna:

          
Kata laluan:

                                                                                                                                                                                                                                               





Dengan cara ini, halaman kami terbentuk:

Program asas kini tersedia, kami kini memerlukan sokongan pangkalan data, jadi kami perlu memasang persekitaran mongoDB

MongoDB

MongoDB ialah sejenis NoSQL berdasarkan storan fail yang diedarkan Ia ditulis dalam C. Struktur data yang disokong oleh MongoDB adalah longgar, serupa dengan json Kami tahu bahawa json boleh menyokong apa-apa jenis, jadi ia boleh mencipta struktur yang sangat kompleks

{
id: 1,
nama: 'Ye Xiaochai',
kawan-kawan: [
{ id: 2, nama: 'Su Huan Zhen' },
{ id: 3, nama: 'Buku satu halaman' }
]
}


Pasang MongoDB

Mula-mula pergi ke http://www.mongodb.org/downloads untuk memuat turun fail pemasangan, kemudian salin fail ke pemacu D dan namakan semula mongodb, kemudian buat folder blog baharu di dalamnya


Kemudian buka alat baris arahan dan tukar direktori ke bin, masukkan:

Salin kod Kod adalah seperti berikut:mongod -dbpath d:mongodbblog
Tetapkan folder blog sebagai direktori projek dan mulakan pangkalan data Untuk kemudahan pada masa hadapan, kita boleh menulis arahan dan klik untuk memulakan pangkalan data:

Salin kod Kod adalah seperti berikut:d:mongodbbinmongod.exe -dbpath d:mongodbblog

Paut MongoDB

Selepas pangkalan data berjaya dipasang, program kami masih memerlukan program "pemandu" yang berkaitan untuk memaut ke pangkalan data Sudah tentu, kami mesti memuat turun pakej pada masa ini...

Buka package.json dan tambah baris baharu dalam kebergantungan

Salin kod Kod adalah seperti berikut:

{
"nama": "nama-permohonan",
"versi": "0.0.1",
"swasta": benar,
"skrip": {
"start": "node app.js"
},
"pergantungan": {
"express": "3.4.8",
"ejs": "*",
"mongodb": "*"
}
}

Kemudian jalankan npm install untuk memuat turun pakej kebergantungan baharu Sekarang anda mempunyai pemacu yang berkaitan dengan mongoDB Untuk menyambung ke pangkalan data seperti mysql, anda memerlukan pakej kebergantungan lain

Pada masa ini, buat fail setting.js dalam direktori akar dan simpan maklumat sambungan pangkalan data

Salin kod Kod adalah seperti berikut:

module.exports = {
cookieRahsia: 'blog saya',
db: 'blog',
hos: 'localhost'
};

db ialah nama pangkalan data, hos ialah alamat pangkalan data, cookieSecret digunakan untuk penyulitan kuki dan tiada kaitan dengan pangkalan data

Seterusnya, buat folder model baharu dalam direktori akar dan buat db.js baharu di bawah folder model

Salin kod Kod adalah seperti berikut:

var tetapan = memerlukan('../settings'),
Db = memerlukan('mongodb').Db,
Sambungan = memerlukan('mongodb').Sambungan,
Pelayan = memerlukan('mongodb').Pelayan;
module.exports = new Db(settings.db, new Server(settings.host, Connection.DEFAULT_PORT), {safe: true});

Salin kod Kod adalah seperti berikut:
Db baharu(settings.db, Server(setting. hos, Sambungan .DEFAULT_PORT), { selamat: benar });

Tetapkan nama pangkalan data, alamat pangkalan data dan port pangkalan data untuk mencipta tika pangkalan data dan eksport tika melalui module.exports, supaya pangkalan data boleh dibaca dan ditulis melalui memerlukan

Untuk berjaya menulis ke pangkalan data, program sebelah pelayan perlu memproses maklumat siaran, jadi kami mencipta user.js baharu dalam folder model

Salin kod Kod adalah seperti berikut:

var mongodb = memerlukan('./db');

fungsi Pengguna(pengguna) {
this.name = nama pengguna;
this.password = pengguna.kata laluan;
};

module.exports = Pengguna;

//Simpan maklumat pengguna
User.prototype.save = fungsi (panggilan balik) {
//Dokumen pengguna untuk disimpan dalam pangkalan data
pengguna var = {
nama: this.name,
Kata laluan: this.password
};
//Buka pangkalan data
mongodb.open(fungsi (err, db) {
Jika (err) {
Kembalikan panggilan balik(err); //Ralat, kembalikan maklumat ralat
}
//Baca koleksi pengguna
db.collection('pengguna', fungsi (err, koleksi) {
Jika (err) {
          mongodb.close();
           kembalikan panggilan balik(err); //Ralat, kembalikan maklumat err
}
//Masukkan data pengguna ke dalam koleksi pengguna
      collection.insert(pengguna, {
        selamat: benar
}, fungsi (err, pengguna) {
          mongodb.close();
Jika (err) {
              kembalikan panggilan balik(err); //Ralat, kembalikan maklumat ralat
}
​​ panggil balik(null, pengguna[0]); //Berjaya! err adalah batal dan mengembalikan dokumen pengguna yang disimpan
});
});
});
};

Salin kod Kod adalah seperti berikut:

//Baca maklumat pengguna
User.get = fungsi(nama, panggil balik) {
//Buka pangkalan data
mongodb.open(fungsi (err, db) {
Jika (err) {
Kembalikan panggilan balik(err);//Ralat, kembalikan maklumat ralat
}
//Baca koleksi pengguna
db.collection('pengguna', fungsi (err, koleksi) {
Jika (err) {
          mongodb.close();
          kembalikan panggilan balik(err);//Ralat, kembalikan maklumat err
}
//Cari dokumen yang nilai nama penggunanya (kunci nama) ialah nama
      koleksi.findOne({
nama: nama
}, fungsi (err, pengguna) {
          mongodb.close();
Jika (err) {
             kembalikan panggilan balik(err);//Gagal! Kembalikan maklumat err
}
panggilan balik(null, pengguna); // Berjaya! Kembalikan maklumat pengguna yang ditanya
});
});
});
};

Ini adalah satu untuk menulis data dan satu untuk membaca data Kami mempunyai program pemprosesan Sekarang kami perlu menambah program berikut di hadapan index.js

Salin kod Kod adalah seperti berikut:
var User = require('../models/user .js' );

Ubah suai app.post('/register')

Salin kod Kod adalah seperti berikut:

app.post('/register', function (req, res) {
var name = req.body.name;
var pwd = req.body.password;
var newUser = Pengguna baharu({
nama: nama,
Kata laluan: pwd
});
newUser.save(fungsi (err, pengguna) {
//Operasi berkaitan, tulis ke sesi
res.send(pengguna);
});
});

Kemudian klik daftar dan anda akan mendapat jawapan

Jika anda tidak pasti sama ada untuk menulis ke pangkalan data pada masa ini, anda boleh memasukkan pangkalan data untuk membuat pertanyaan, mula-mula beralih ke direktori pangkalan data

Salin kod Kod adalah seperti berikut:
D:mongodbbin>

Masukkan:

Salin kod Kod tersebut adalah seperti berikut:
mongo

Kemudian tukar sambungan pangkalan datanya kepada blog

Salin kod Kod adalah seperti berikut:
gunakan blog

Input terakhir

Salin kod Kod adalah seperti berikut:
db.users.find()

Kami semua gembira melihat data ditulis, jadi kajian hari ini akan tamat buat masa ini

Kesimpulan

Hari ini kami mengikuti blog untuk menyelesaikan operasi dari pemasangan hingga penulisan ke pangkalan data Esok marilah kami menambah aspek lain dan secara beransur-ansur mendalami pembelajaran nodeJS

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!