ให้ nodejs รัน
ขั้นตอนแรกคือการติดตั้งสภาพแวดล้อม NodeJS ตอนนี้ Windows มีการติดตั้ง nodejs เร็วขึ้นคุณสามารถดาวน์โหลดได้โดยตรง:
http://www.nodejs.org/download/
ดาวน์โหลดได้ตามต้องการ หลังจากการดาวน์โหลดเสร็จสมบูรณ์เพียงไปที่ขั้นตอนต่อไป หลังจากนั้นเราจะมีสภาพแวดล้อม NodeJS
ขั้นตอนที่สองคือเพื่ออำนวยความสะดวกในการดำเนินการในภายหลังของเราเราเห็นบล็อกโฟลเดอร์โดยตรงบนดิสก์ D
จากนั้นเปิดเครื่องมือบรรทัดคำสั่ง Windows ป้อน D Disk แล้วป้อน:
คัดลอกรหัสดังต่อไปนี้: บล็อก Express -E
จากนั้นอาจมีแพ็คเกจการพึ่งพาภายในเราจำเป็นต้องป้อนไดเรกทอรีบล็อกเพื่อติดตั้ง (การกำหนดค่าการติดตั้งจัดทำโดย package.json):
คัดลอกรหัสดังนี้: การติดตั้ง NPM
ด้วยวิธีนี้เราดาวน์โหลดแพ็คเกจการพึ่งพาซึ่งขึ้นอยู่กับไฟล์แพ็คเกจและแพ็คเกจ Java และไฟล์. NET BLL ควรเป็นแนวคิด
ในเวลานี้โปรแกรมของเราพร้อมที่จะเรียกใช้:
คัดลอกรหัสดังต่อไปนี้: แอปโหนด
คัดลอกรหัสดังนี้: D:/บล็อก> โหนด AppExpress Server ฟังบนพอร์ต 3000
ในเวลานี้คุณจะได้รับการตอบกลับเมื่อคุณเปิดเบราว์เซอร์:
ที่นี่เรากำลังใช้ Express (กรอบการพัฒนา NodeJSWEB ยอดนิยม) และใช้เอ็นจิ้นเทมเพลต EJS
โครงสร้างไฟล์
โครงสร้างไดเรกทอรีไฟล์เริ่มต้นมีดังนี้:
app.js เป็นไฟล์รายการ
package.json เป็นไฟล์การพึ่งพาโมดูล เมื่อเราใช้การติดตั้ง NPM จะดาวน์โหลดแพ็คเกจที่เกี่ยวข้องออนไลน์ตามการกำหนดค่า
node_modules เป็นไฟล์โมดูลที่ดาวน์โหลด (package.json)
จัดเก็บไฟล์ทรัพยากรคงที่
เส้นทางบันทึกไฟล์เส้นทาง
Views Store ไฟล์มุมมองที่เกี่ยวข้อง
ด้วยวิธีนี้โครงสร้างไดเรกทอรีพื้นฐานของเราออกมา พูดคุยสั้น ๆ เกี่ยวกับไดเรกทอรี Node_Modules ที่นี่
node_modules/ejs
เราเพิ่งบอกว่าโมดูลที่ดาวน์โหลดถูกเก็บไว้ที่นี่ เพื่อให้มันตรงไปตรงมามันเป็นคอลเลกชันของไฟล์ JS
การคัดลอกรหัสมีดังนี้:
var parse = exports.parse = function (str, ตัวเลือก) {
ตัวเลือก var = ตัวเลือก || -
, open = opotions.open || Exports.Open || -
, close = options.close || ส่งออก close || -
, filename = opotions.filename
, compiledebug = options.compiledebug! == false
, buf = "";
buf += 'var buf = [];';
if (false! == options._with) buf += '/nwith (locals || {}) {(function () {';
buf += '/n buf.push (/' ';
var lineno = 1;
Var Consumptioneol = FALSE;
สำหรับ (var i = 0, len = str.length; i <len; ++ i) {
var stri = str [i];
if (str.slice (i, open.length + i) == เปิด) {
i += open.length
คำนำหน้า var, postfix, line = (compiledebug? '__stack.lineno =': '') + lineno;
สวิตช์ (str [i]) {
กรณี '=':
prefix = "', escape ((" + line +', ';
postfix = ")), '";
++ i;
หยุดพัก;
กรณี '-':
prefix = "', (" + line +', ';
postfix = "), '";
++ i;
หยุดพัก;
ค่าเริ่มต้น:
คำนำหน้า = "');" + line + ';';
postfix = "; buf.push ('";
-
var end = str.indexof (ปิด, i)
, js = str.substring (i, end)
, start = i
รวม = null
, n = 0;
if ('-' == js [js.length-1]) {
js = js.substring (0, js.length - 2);
ผู้บริโภค = จริง;
-
if (0 == js.trim (). indexof ('รวม')) {
ชื่อ var = js.trim (). slice (7) .trim ();
if (! ชื่อไฟล์) โยนข้อผิดพลาดใหม่ ('ตัวเลือกชื่อไฟล์เป็นสิ่งจำเป็นสำหรับการรวม');
var path = resolveinclude (ชื่อ, ชื่อไฟล์);
รวม = อ่าน (พา ธ 'utf8');
รวม = exports.parse (รวม, {filename: path, _with: false, open: open, close: close, compiledebug: compiledebug});
buf + = "' + (ฟังก์ชัน () {" + รวม + "}) () +'";
js = '';
-
ในขณะที่ (~ (n = js.indexof ("/n", n))) n ++, lineno ++;
if (js.substr (0, 1) == ':') js = กรอง (js);
ถ้า (js) {
if (js.lastindexof ('//')> js.lastindexof ('/n')) js += '/n';
buf += คำนำหน้า;
buf += js;
buf += postfix;
-
i + = end - Start + Close.Length - 1;
} อื่นถ้า (stri == "//") {
buf += "////";
} อื่นถ้า (stri == "'") {
buf += "// '";
} อื่นถ้า (stri == "/r") {
// ไม่สนใจ
} อื่นถ้า (stri == "/n") {
ถ้า (ผู้บริโภค) {
ผู้บริโภค = FALSE;
} อื่น {
buf += "// n";
ผ้าลินิน ++;
-
} อื่น {
buf += stri;
-
-
if (false! == opotions._with) buf += "');}) (); /n} /nreturn buf.join (' ');";
else buf += "');/nreturn buf.join (' ');";
กลับ buf;
-
เช่นเดียวกับเทมเพลต EJS และโมดูลด่วนที่เราใช้ที่นี่จากนั้นเราก็เดินเข้าไปในโปรแกรม EJS อยากรู้อยากเห็นเพื่อดูว่าความแตกต่างคืออะไร
หลังจากเปิด EJS.JS เราวาดรหัสเพื่ออ่าน: เราคุ้นเคยกับรหัสนี้มากขึ้น มันสอดคล้องกับรหัสเอ็นจิ้นเทมเพลตของขีดล่างและทั้งสองแยกวิเคราะห์เทมเพลตเป็นสตริง
จากนั้นแปลงเป็นฟังก์ชั่นผ่านวิธีการประเมินหรือฟังก์ชันใหม่และส่งผ่านไปยังวัตถุข้อมูลของคุณเองสำหรับการแยกวิเคราะห์
สำหรับเวิร์กโฟลว์เฉพาะเรายังไม่รู้ดังนั้นเราจึงสามารถวางไว้ในจุดต่อไปเพื่อศึกษา โอเคไปที่โมดูลอื่น ๆ กันเลย
app.js
ในฐานะไฟล์รายการ App.js มีบทบาทสำคัญ:
การคัดลอกรหัสมีดังนี้:
-
* การพึ่งพาโมดูล
-
var express = ต้องการ ('ด่วน');
เส้นทาง var = ต้องการ ('./ เส้นทาง');
var user = ต้องการ ('./ เส้นทาง/ผู้ใช้');
var http = ต้องการ ('http');
var path = ต้องการ ('เส้นทาง');
var app = express ();
// สภาพแวดล้อมทั้งหมด
app.set ('พอร์ต', process.env.port || 3000);
app.set ('views', path.join (__ dirname, 'views'));
app.set ('ดูเอ็นจิ้น', '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, 'สาธารณะ')));
// การพัฒนาเท่านั้น
if ('development' == app.get ('env')) {
App.use (Express.errorHandler ());
-
app.get ('/', route.index);
app.get ('/ผู้ใช้', user.list);
http.createserver (แอพ) .Listen (app.get ('พอร์ต'), function () {
console.log ('การฟังเซิร์ฟเวอร์ด่วนบนพอร์ต' + app.get ('พอร์ต'));
-
เราโหลดโมดูล Express และ HTTP ผ่านคำสั่ง require () และจะโหลดผู้ใช้ดัชนีและไฟล์เทมเพลตอื่น ๆ ในไดเร็กทอรีเส้นทาง
app.set ('พอร์ต', process.env.port || 3000) เป็นพอร์ตเมื่อเริ่มต้น
app.set ('views', __dirname + '/views') เป็นพา ธ ในการจัดเก็บไฟล์เทมเพลต โดยที่ __dirname เป็นตัวแปรส่วนกลางจัดเก็บไดเรกทอรีที่สคริปต์ปัจจุบันตั้งอยู่ เราสามารถดูได้ด้วยวิธีนี้:
การคัดลอกรหัสมีดังนี้:
console.log (__ dirname); // index.js เพิ่มรหัสต่อไปนี้
-
D:/บล็อก> แอปโหนด
Express Server Li
D:/บล็อก/เส้นทาง
-
สำหรับ __dirname นี้ได้อย่างไรเราไม่จำเป็นต้องให้ความสนใจกับมันในขณะนี้
app.set ('ดูเอ็นจิ้น', 'ejs') ตั้งค่าเอ็นจิ้นเทมเพลตเป็น EJS
App.use (Express.favicon ()) คือการตั้งค่าไอคอนเพื่อแก้ไขแล้วคุณสามารถสร้างไฟล์รูปภาพด้านล่างสาธารณะ
app.use (express.logger ('dev')); Express ขึ้นอยู่กับการเชื่อมต่อและมิดเดิลแวร์ในตัวจะส่งออกบันทึกบางอย่าง
app.use (express.json ()); ใช้ในการแยกวิเคราะห์ร่างกายของคำขอโดยที่สตริงจะถูกแปลงแบบไดนามิกเป็นวัตถุ JSON แบบไดนามิก
App.use (Express.Methodoverride ()); เชื่อมต่อมิดเดิลแวร์ในตัวเพื่อจัดการคำขอโพสต์และสามารถปลอมตัวได้และวิธีการ HTTP อื่น ๆ
app.use (app.router); โทรหากฎความละเอียดของเราเตอร์
app.use (express.static (path.join (__ dirname, 'สาธารณะ'))); เชื่อมต่อมิดเดิลแวร์ในตัวตั้งค่าสาธารณะในไดเรกทอรีรากเพื่อจัดเก็บไฟล์คงที่
การคัดลอกรหัสมีดังนี้:
if ('development' == app.get ('env')) {
App.use (Express.errorHandler ());
-
ประโยคนี้หมายความว่าข้อมูลข้อผิดพลาดควรเป็นเอาต์พุตภายใต้เงื่อนไขการพัฒนา
การคัดลอกรหัสมีดังนี้:
app.get ('/', route.index);
app.get ('/ผู้ใช้', user.list);
สองประโยคนี้เป็นไฟล์การประมวลผลเฉพาะในเวลาการเข้าถึง ตัวอย่างเช่นเมื่อเข้าถึงได้โดยตรงที่นี่การเข้าถึงเริ่มต้นคือ Route.index
จริง ๆ แล้วมันวิเคราะห์ข้อมูลเทมเพลตภายใน:
การคัดลอกรหัสมีดังนี้:
exports.index = function (req, res) {
console.log (__ dirname);
res.render ('index', {title: 'express'});
-
ในที่สุดรหัสด้านบนจะถูกเรียกให้สร้างเซิร์ฟเวอร์ HTTP และฟังพอร์ต 3000 หลังจากประสบความสำเร็จคุณสามารถเข้าถึงได้บนหน้าเว็บ
การกำหนดเส้นทาง
เราใช้วิธีนี้ในการสร้างเส้นทาง
การคัดลอกรหัสมีดังนี้: app.get ('/', route.index);
รหัสข้างต้นสามารถแทนที่ด้วยรหัสนี้ (เขียนในแอพ)
การคัดลอกรหัสมีดังนี้:
app.get ('/', function (req, res) {
res.render ('index', {title: 'express'});
-
รหัสนี้หมายความว่าเมื่อเข้าถึงโฮมเพจเอ็นจิ้นเทมเพลต EJS จะถูกเรียกให้แสดงไฟล์เทมเพลต index.ejs
ตอนนี้ทำการดัดแปลงบางอย่าง รหัสข้างต้นใช้ฟังก์ชันการกำหนดเส้นทาง แต่เราไม่สามารถใส่รหัสที่เกี่ยวข้องกับการกำหนดเส้นทางลงในแอพได้ หากมีเส้นทางมากเกินไปแอปจะกลายเป็นป่องดังนั้นเราจึงใส่การกำหนดค่าที่เกี่ยวข้องลงในดัชนี
ดังนั้นลบฟังก์ชั่นการกำหนดเส้นทางที่เกี่ยวข้องในแอพและเพิ่มรหัสไปยังส่วนท้ายของแอพ:
การคัดลอกรหัสมีดังนี้เส้นทาง (แอพ);
จากนั้นแก้ไข index.js
การคัดลอกรหัสมีดังนี้:
module.exports = function (แอป) {
app.get ('/', function (req, res) {
res.render ('index', {title: 'express'});
-
-
วิธีการจัดระเบียบนี้ยังไม่ชัดเจนดังนั้นฉันจะไม่ใส่ใจกับมันอีกต่อไป มาดูกันในภายหลัง
กฎการกำหนดเส้นทาง
Express encapsulates คำขอ HTTP หลายรายการโดยทั่วไปเราใช้ Get/Post Two
การคัดลอกรหัสมีดังนี้:
app.get ();
app.post ();
พารามิเตอร์แรกคือเส้นทางคำขอพารามิเตอร์ที่สองคือฟังก์ชันการโทรกลับหรือพารามิเตอร์สองตัวคือการร้องขอและการตอบสนอง
จากนั้นสำหรับ REQ (คำขอ) มีกฎต่อไปนี้
req.Query จัดการรับคำขอและรับพารามิเตอร์การร้องขอ GET
req.params handles /: xxx แบบฟอร์มรับหรือโพสต์คำขอ
req.body จัดการคำขอโพสต์และรับรายงานการโพสต์
req.params จัดการรับและโพสต์คำขอ แต่ลำดับความสำคัญการค้นหาคือ req.params-> req.body-> req.query
กฎเส้นทางยังสนับสนุนความสม่ำเสมอเราจะพูดถึงรายละเอียดในภายหลัง ...
เพิ่มกฎการกำหนดเส้นทาง
เมื่อเราเข้าถึงลิงค์ที่ไม่มีอยู่:
เนื่องจากไม่มีกฎการกำหนดเส้นทางสำหรับ /y เขาไม่ได้พูดไฟล์ภายใต้สาธารณะดังนั้นจึงเป็น 404
ตอนนี้เราเพิ่มเส้นทางที่เกี่ยวข้องใน index.js:
การคัดลอกรหัสมีดังนี้:
module.exports = function (แอป) {
app.get ('/', function (req, res) {
res.render ('index', {title: 'express'});
-
app.get ('/y', function (req, res) {
Res.Send ('Ye Xiaochai');
-
-
ที่นี่ฉันมีหน้าอ่านไม่ออก:
เหตุผลก็คือหลังจากดาวน์โหลดไฟล์ของฉันคือการเข้ารหัส GBK เราแค่ต้องเปลี่ยนเป็น UTF-8 เราไม่สนใจเกี่ยวกับเอ็นจิ้นเทมเพลต ไปที่ส่วนถัดไป
ฟังก์ชันการลงทะเบียน
ที่นี่เราติดตามบล็อกเกอร์ดั้งเดิมเพื่อทำฟังก์ชั่นการลงทะเบียนอย่างง่ายใช้ Mongo DB เป็นฐานข้อมูลจากนั้นเราจะปรับปรุงฟังก์ชั่นในทางกลับกัน
สร้างเส้นทางการลงทะเบียนใหม่และสร้างเทมเพลตการลงทะเบียนใหม่สำหรับมันดังนั้นเริ่มต้นกันเถอะ
①สร้างเส้นทางใหม่ในดัชนี
การคัดลอกรหัสมีดังนี้:
app.get ('/register', function (req, res) {
res.render ('index', {title: 'ลงทะเบียนหน้า'});
-
การคัดลอกรหัสมีดังนี้:
module.exports = function (แอป) {
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 ('ลงทะเบียน', {title: 'ลงทะเบียนหน้า'});
-
การคัดลอกรหัสมีดังนี้:
<! doctype html>
<html>
<head>
<title> < %= title %> </title>
<link rel = 'stylesheet' href = '/stylesheets/style.css'/>
</head>
<body>
<H1> < %= title %> </h1>
<form method = "post">
<div> ชื่อผู้ใช้: <อินพุต type = "text" name = "name"/> </div>
<div> รหัสผ่าน: <อินพุต type = "รหัสผ่าน" name = "รหัสผ่าน"/> </div>
<div> <อินพุต type = "subment" value = "เข้าสู่ระบบ"/> </div>
</form>
</body>
</html>
ด้วยวิธีนี้หน้าของเราจะเกิดขึ้น:
ด้วยโปรแกรมพื้นฐานตอนนี้เราต้องการการสนับสนุนฐานข้อมูลดังนั้นเราจึงต้องติดตั้งสภาพแวดล้อม MongoDB
MongoDB
MongoDB เป็น NOSQL ตามที่เก็บไฟล์แบบกระจาย มันเขียนใน C ++ โครงสร้างข้อมูลที่รองรับโดย MongoDB นั้นหลวมคล้ายกับ JSON เรารู้ว่า JSON สามารถรองรับทุกประเภทเพื่อให้เราสามารถสร้างโครงสร้างที่ซับซ้อนมาก
การคัดลอกรหัสมีดังนี้:
-
id: 1,
ชื่อ: 'Ye Xiaochai'
Frinds: [
{id: 2, ชื่อ: 'su huanzhen'},
{id: 3, ชื่อ: 'หนังสือเล่มเดียว'}
-
-
ติดตั้ง MongoDB
ก่อนอื่นไปที่ http://www.mongoDb.org/downloads เพื่อดาวน์โหลดไฟล์การติดตั้งจากนั้นคัดลอกไฟล์ไปที่ D Disk และเปลี่ยนชื่อ MongoDB จากนั้นสร้างโฟลเดอร์บล็อกใหม่ภายใน
จากนั้นเปิดเครื่องมือบรรทัดคำสั่งเพื่อสลับไดเรกทอรีเป็น bin และป้อน:
คัดลอกรหัสดังต่อไปนี้: Mongod -dbpath D:/MongoDB/บล็อก
ตั้งค่าโฟลเดอร์บล็อกเป็นไดเรกทอรีโครงการและเริ่มฐานข้อมูล เพื่อความสะดวกเราจะเขียนคำสั่งและคลิกโดยตรงเพื่อเริ่มฐานข้อมูล:
คัดลอกรหัสดังต่อไปนี้: D: /mongoDb/bin/mongod.exe -dbpath D:/mongoDB/บล็อก
ลิงก์ไปยัง MongoDB
หลังจากติดตั้งฐานข้อมูลเรียบร้อยแล้วโปรแกรมของเรายังต้องการโปรแกรม "ไดรเวอร์" ที่เกี่ยวข้องเพื่อเชื่อมโยงฐานข้อมูล แน่นอนว่าต้องดาวน์โหลดแพ็คเกจ ...
เปิด package.json เพื่อเพิ่มบรรทัดใหม่ในการพึ่งพา
การคัดลอกรหัสมีดังนี้:
-
"ชื่อ": "แอปพลิเคชันชื่อ",
"เวอร์ชัน": "0.0.1"
"ส่วนตัว": จริง
"สคริปต์": {
"เริ่ม": "Node App.js"
-
"การพึ่งพา": {
"ด่วน": "3.4.8"
"EJS": "*",
"MongoDB": "*"
-
-
จากนั้นเรียกใช้ NPM ติดตั้งเพื่อดาวน์โหลดแพ็คเกจการพึ่งพาใหม่ ด้วยวิธีนี้มีไดรเวอร์ที่เกี่ยวข้องกับ MongoDB ในการเชื่อมโยง MySQL และฐานข้อมูลอื่น ๆ จำเป็นต้องมีแพ็คเกจการพึ่งพาอื่น ๆ
ในเวลานี้ให้สร้างไฟล์ setation.js ในไดเรกทอรีรูทเพื่อบันทึกข้อมูลการเชื่อมต่อฐานข้อมูล
การคัดลอกรหัสมีดังนี้:
module.exports = {
Cookiesecret: 'myblog',
DB: 'บล็อก',
โฮสต์: 'localhost'
-
DB คือชื่อฐานข้อมูลโฮสต์คือที่อยู่ฐานข้อมูล Cookiesecret ใช้สำหรับการเข้ารหัสคุกกี้และไม่มีส่วนเกี่ยวข้องกับฐานข้อมูล
ถัดไปสร้างโฟลเดอร์โมเดลใหม่ในไดเรกทอรีรูทและสร้าง db.js ใหม่ในโฟลเดอร์โมเดล
การคัดลอกรหัสมีดังนี้:
การตั้งค่า var = ต้องการ ('../ การตั้งค่า')
db = ต้องการ ('mongoDb'). db,
การเชื่อมต่อ = ต้องการ ('MongoDB') การเชื่อมต่อ
เซิร์ฟเวอร์ = ต้องการ ('mongoDB') เซิร์ฟเวอร์;
module.exports = new db (settings.db, เซิร์ฟเวอร์ใหม่ (settings.host, connection.default_port), {ปลอดภัย: true});
การคัดลอกรหัสมีดังนี้: db ใหม่ (settings.db, เซิร์ฟเวอร์ใหม่ (settings.host, connection.default_port), {ปลอดภัย: true});
ตั้งค่าชื่อฐานข้อมูลที่อยู่ฐานข้อมูลและพอร์ตฐานข้อมูลเพื่อสร้างอินสแตนซ์ฐานข้อมูลและส่งออกอินสแตนซ์ผ่าน module.exports เพื่อให้สามารถอ่านและเขียนฐานข้อมูลได้
เราจำเป็นต้องเขียนลงในฐานข้อมูลได้สำเร็จและโปรแกรมฝั่งเซิร์ฟเวอร์จำเป็นต้องประมวลผลข้อมูลโพสต์ดังนั้นเราจึงสร้าง user.js ใหม่ในโฟลเดอร์โมเดล
การคัดลอกรหัสมีดังนี้:
var mongoDb = reghed ('./ db');
ฟังก์ชั่นผู้ใช้ (ผู้ใช้) {
this.name = user.name;
this.password = user.password;
-
module.exports = ผู้ใช้;
// จัดเก็บข้อมูลผู้ใช้
user.prototype.save = function (callback) {
// เอกสารผู้ใช้ที่จะเก็บไว้ในฐานข้อมูล
var user = {
ชื่อ: this.name,
รหัสผ่าน: this.password
-
// เปิดฐานข้อมูล
mongoDb.open (ฟังก์ชั่น (err, db) {
ถ้า (err) {
ส่งคืนการโทรกลับ (เอ่อ); // ข้อผิดพลาดส่งคืนข้อมูลผิดพลาด
-
// อ่านคอลเลกชันผู้ใช้
db.collection ('ผู้ใช้', ฟังก์ชั่น (err, collection) {
ถ้า (err) {
MongoDb.close ();
ส่งคืนการโทรกลับ (เอ่อ); // ข้อผิดพลาดส่งคืนข้อมูลผิดพลาด
-
// แทรกข้อมูลผู้ใช้ลงในคอลเลกชันผู้ใช้
collection.insert (ผู้ใช้, {
ปลอดภัย: จริง
}, function (err, user) {
MongoDb.close ();
ถ้า (err) {
ส่งคืนการโทรกลับ (เอ่อ); // ข้อผิดพลาดส่งคืนข้อมูลผิดพลาด
-
การโทรกลับ (null, ผู้ใช้ [0]); //ความสำเร็จ! Err เป็น NULL และส่งคืนเอกสารผู้ใช้ที่เก็บไว้
-
-
-
-
การคัดลอกรหัสมีดังนี้:
// อ่านข้อมูลผู้ใช้
user.get = function (ชื่อ, การโทรกลับ) {
// เปิดฐานข้อมูล
mongoDb.open (ฟังก์ชั่น (err, db) {
ถ้า (err) {
ส่งคืนการโทรกลับ (err); // ข้อผิดพลาดส่งคืนข้อมูลผิดพลาด
-
// อ่านคอลเลกชันผู้ใช้
db.collection ('ผู้ใช้', ฟังก์ชั่น (err, collection) {
ถ้า (err) {
MongoDb.close ();
ส่งคืนการโทรกลับ (err); // ข้อผิดพลาดส่งคืนข้อมูลผิดพลาด
-
// ค้นหาเอกสารที่มีชื่อชื่อผู้ใช้ (ชื่อ) ชื่อค่า
collection.findone ({
ชื่อ: ชื่อ
}, function (err, user) {
MongoDb.close ();
ถ้า (err) {
ส่งคืนการโทรกลับ (err); // ล้มเหลว! กลับไปที่ข้อมูลผิดพลาด
-
การโทรกลับ (null, ผู้ใช้); // ความสำเร็จ! ส่งคืนข้อมูลผู้ใช้แบบสอบถาม
-
-
-
-
ที่นี่หนึ่งเขียนข้อมูลและอื่น ๆ อ่านข้อมูล มีโปรเซสเซอร์ ตอนนี้คุณต้องเพิ่มโปรแกรมต่อไปนี้ในด้านหน้าของ index.js
การคัดลอกรหัสมีดังนี้: var user = ต้องการ ('../ models/user.js');
แก้ไข App.post ('/register')
การคัดลอกรหัสมีดังนี้:
app.post ('/register', function (req, res) {
ชื่อ var = req.body.name;
var pwd = req.body.password;
var newUser = ผู้ใช้ใหม่ ({
ชื่อ: ชื่อ,
รหัสผ่าน: PWD
-
newUser.save (ฟังก์ชั่น (err, user) {
// การดำเนินการที่เกี่ยวข้อง, เซสชันการเขียน
Res.Send (ผู้ใช้);
-
-
จากนั้นคลิกเพื่อลงทะเบียนและคุณจะมีปฏิกิริยาตอบสนอง
หากคุณไม่สามารถระบุได้ว่าจะเขียนลงในฐานข้อมูลในเวลานี้คุณสามารถป้อนฐานข้อมูลสำหรับการสืบค้นและสลับไปยังไดเรกทอรีฐานข้อมูลก่อน
คัดลอกรหัสดังนี้: D:/MongoDB/bin>
เข้า:
คัดลอกรหัสดังนี้: Mongo
จากนั้นสลับฐานข้อมูลเพื่อเชื่อมต่อกับบล็อก
คัดลอกรหัสดังนี้: ใช้บล็อก
อินพุตสุดท้าย
คัดลอกรหัสดังนี้: db.users.find ()
เราทุกคนเห็นข้อมูลที่เขียนอย่างมีความสุขดังนั้นการเรียนรู้ในวันนี้จึงสิ้นสุดลงในขณะนี้
บทสรุป
วันนี้เราติดตามบล็อกเพื่อดำเนินการให้เสร็จสิ้นตั้งแต่การติดตั้งไปจนถึงการเขียนลงในฐานข้อมูล ให้เราเพิ่มแง่มุมอื่น ๆ ในวันพรุ่งนี้และค่อยๆเรียนรู้การเรียนรู้ของ nodejs ให้ลึกซึ้งยิ่งขึ้น