Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung der Umgebungskonfiguration von Node.js mit MongoDB unter Wondows_node.js

Detaillierte Erläuterung der Umgebungskonfiguration von Node.js mit MongoDB unter Wondows_node.js

WBOY
WBOYOriginal
2016-05-16 15:12:451568Durchsuche

Um die Benutzerdaten und Geschäftsdaten der Website zu speichern, ist in der Regel eine Datenbank erforderlich. MongoDB und Node.js passen besonders gut zusammen, da MongoDB eine nicht relationale Datenbank ist, die auf Dokumenten basiert. Die Befehle zum Verwalten der Datenbank wie Hinzufügen, Löschen, Ändern und Abfragen werden in BSON gespeichert sind der JavaScript-Syntax sehr ähnlich. Wenn Sie in Node.js auf MongoDB-Daten zugreifen, werden Sie sich wie eine Familie fühlen, was sehr herzlich ist.

Ich werde auch MongoDB als meine Datenbank verwenden.

MongoDB verwendet Sammlungen und Dokumente zum Beschreiben und Speichern von Daten. Sammlungen entsprechen Tabellen und Dokumente entsprechen Zeilen. In relationalen Datenbanken wie MySQL ist die Tabellenstruktur jedoch festgelegt Es besteht aus mehreren Spalten und die Zeilen sind gleich. Allerdings können mehrere Dokumente in einer Sammlung unterschiedliche Strukturen haben, was flexibler ist.

Mongo installieren

Die ausführliche Anleitung finden Sie hier (offizielle Dokumentation von MongoDB): https://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/.

Gehen Sie zu https://www.mongodb.org/downloads, um das Installationspaket herunterzuladen. Das Windows-System ist eine MSI-Datei. Ich habe die Version „Windows 64-Bit 2008 R2+“ ausgewählt.

Die Installation ist sehr einfach. Sie können den Installationsort auswählen oder im MongoDB-Verzeichnis auf Laufwerk G installieren. Nach der Installation sieht die Verzeichnisstruktur wie folgt aus: G:MongoDBServer3.0.

Mongod, Mongo und andere Tools befinden sich alle im bin-Verzeichnis unter dem 3.0-Verzeichnis.

Starten

Um MongoDB zu verwenden, müssen Sie einen Ordner zum Speichern von Daten angeben. Ich habe unter G:MongoDB einen Ordner namens db erstellt.

Öffnen Sie cmd, geben Sie das Verzeichnis G:MongoDBServer3.0bin ein, führen Sie „mongod –dbpath=G:MongoDBdb“ aus. MongoDB wird gestartet und Sie sehen das folgende Bild:

201631161833532.jpg (672×436)

Nachdem MongoDB gestartet wurde, überwacht es einen Port und wartet darauf, dass der Client eine Verbindung herstellt. Wie aus der obigen Abbildung ersichtlich ist, ist der Standard-Listening-Port 27017. Sie können diesen Port mit der Option „-port“ ändern. Beispielsweise startet der Befehl „mongod –port 28018 –dbpath=G:MongoDBdb“ MongoDB und überwacht Port 28018.

Nachdem wir MongoDB gestartet haben, können wir Mongo (interaktive Shell) verwenden, um die Datenbank zu verwalten. Führen Sie mongo direkt im bin-Verzeichnis aus und Sie können das folgende Bild sehen:

201631161901110.jpg (672×333)

Mongo Shell stellt standardmäßig eine Verbindung zur Testdatenbank her und teilt uns außerdem mit, dass wir Hilfe eingeben können, um Hilfe anzuzeigen. Sie können „help“ eingeben und die Eingabetaste drücken, um zu sehen, welche Befehle verfügbar sind.

Beachten Sie, dass Mongod standardmäßig ohne Authentifizierung startet. Sobald der Client verbunden ist, kann er nach Belieben arbeiten, einschließlich Datenbankerstellung, Hinzufügen, Löschen, Ändern usw. Wenn Sie die Benutzerberechtigungen einschränken möchten, können Sie dies selbst konfigurieren.

Mungo-Treiber installieren

GIT-Tools installieren:
Da die Github-Website das direkte Herunterladen von Quellcodepaketen, die alle Submodule packen, nicht unterstützt, müssen Sie alle Quellcodes über das Git-Tool auschecken. Von http://code.google.com/p/msysgit/downloads/list können Sie msysgit herunterladen, ein Git-Client-Tool für die Windows-Plattform (die neueste Versionsdatei ist Git-1.7.7.1-preview20111027.exe). Doppelklicken Sie nach dem Herunterladen zum Installieren.

NPM-Quellcode herunterladen:
Öffnen Sie das Befehlszeilentool (CMD) und führen Sie den folgenden Befehl aus, um den gesamten NPM-Quellcode und die abhängigen Codes über msysgit auszuchecken und npm zu installieren.

git clone --recursive git://github.com/isaacs/npm.git
cd npm
node cli.js install npm -gf

Bevor Sie diesen Code ausführen, stellen Sie bitte sicher, dass node.exe über node.msi installiert wird oder sich in der Umgebungsvariablen PATH befindet. Dieser Befehl fügt auch npm zur Umgebungsvariablen PATH hinzu, und Sie können den npm-Befehl dann an einer beliebigen Stelle ausführen. Wenn während der Installation Berechtigungsfehler auftreten, stellen Sie sicher, dass das cmd-Befehlszeilentool als Administrator ausgeführt wird. Führen Sie nach erfolgreicher Installation den folgenden Befehl aus:

npm install underscore

Rückgabe:

underscore@1.2.2 ./node_modules/underscore

Auf diese Weise wird NPM unter der Windows-Plattform installiert, und dann können wir Mongoose installieren

npm install mongoose 

Beispiel
Einige grundlegende Vorgänge und Anweisungen sind in Codekommentaren geschrieben:

// mongoose 链接
var mongoose = require('mongoose');
var db    = mongoose.createConnection('mongodb://127.0.0.1:27017/NodeJS'); 
// 链接错误
db.on('error', function(error) {
  console.log(error);
});
// Schema 结构
var mongooseSchema = new mongoose.Schema({
  username : {type : String, default : '匿名用户'},
  title  : {type : String},
  content : {type : String},
  time   : {type : Date, default: Date.now},
  age   : {type : Number}
});
// 添加 mongoose 实例方法
mongooseSchema.methods.findbyusername = function(username, callback) {
  return this.model('mongoose').find({username: username}, callback);
}
// 添加 mongoose 静态方法,静态方法在Model层就能使用
mongooseSchema.statics.findbytitle = function(title, callback) {
  return this.model('mongoose').find({title: title}, callback);
}
// model
var mongooseModel = db.model('mongoose', mongooseSchema);
// 增加记录 基于 entity 操作
var doc = {username : 'emtity_demo_username', title : 'emtity_demo_title', content : 'emtity_demo_content'};
var mongooseEntity = new mongooseModel(doc);
mongooseEntity.save(function(error) {
  if(error) {
    console.log(error);
  } else {
    console.log('saved OK!');
  }
  // 关闭数据库链接
  db.close();
});
// 增加记录 基于model操作
var doc = {username : 'model_demo_username', title : 'model_demo_title', content : 'model_demo_content'};
mongooseModel.create(doc, function(error){
  if(error) {
    console.log(error);
  } else {
    console.log('save ok');
  }
  // 关闭数据库链接
  db.close();
});
// 修改记录
mongooseModel.update(conditions, update, options, callback);
var conditions = {username : 'model_demo_username'};
var update   = {$set : {age : 27, title : 'model_demo_title_update'}};
var options  = {upsert : true};
mongooseModel.update(conditions, update, options, function(error){
  if(error) {
    console.log(error);
  } else {
    console.log('update ok!');
  }
  //关闭数据库链接
  db.close();
});
// 查询
// 基于实例方法的查询
var mongooseEntity = new mongooseModel({});
mongooseEntity.findbyusername('model_demo_username', function(error, result){
  if(error) {
    console.log(error);
  } else {
    console.log(result);
  }
  //关闭数据库链接
  db.close();
});
// 基于静态方法的查询
mongooseModel.findbytitle('emtity_demo_title', function(error, result){
  if(error) {
    console.log(error);
  } else {
    console.log(result);
  }
  //关闭数据库链接
  db.close();
});
// mongoose find
var criteria = {title : 'emtity_demo_title'}; // 查询条件
var fields  = {title : 1, content : 1, time : 1}; // 待返回的字段
var options = {};
mongooseModel.find(criteria, fields, options, function(error, result){
  if(error) {
    console.log(error);
  } else {
    console.log(result);
  }
  //关闭数据库链接
  db.close();
});
// 删除记录
var conditions = {username: 'emtity_demo_username'};
mongooseModel.remove(conditions, function(error){
  if(error) {
    console.log(error);
  } else {
    console.log('delete ok!');
  }

  //关闭数据库链接
  db.close();
});

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn