摘要:使用內(nèi)在模塊發(fā)送響應(yīng)數(shù)據(jù)監(jiān)聽端口終端打印如下信息使用框架本項目使用的框架來起服務(wù)器。數(shù)據(jù)庫中文檔每一行的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)和基本一樣,所有存儲在集合中的數(shù)據(jù)都是格式,是一種類的一種二進制形式的存儲格式,簡稱。
前言
經(jīng)過上一篇經(jīng)濟基礎(chǔ)構(gòu)建的完成,那么現(xiàn)在正式開始碼代碼吧!
項目架構(gòu) 起HTTP服務(wù)首先建立/server/app.js文件,先把起服務(wù)所需的模塊引入進來,以下介紹兩種起HTTP服務(wù)的方法。
1.使用Node.js 內(nèi)在模塊http
var http = require("http"); http.createServer(function (request, response) { // 發(fā)送響應(yīng)數(shù)據(jù) "Hello Node.js" response.end("Hello Node.js"); }).listen(8888); // 監(jiān)聽8888端口 // 終端打印如下信息 console.log("Server running at http://127.0.0.1:8888/");
2.使用express框架
本項目使用node.js的express框架來起HTTP服務(wù)器。express官網(wǎng),內(nèi)有對應(yīng)的簡單教程、API等,可自行查閱
const express = require("express"), //加載express模塊 app = express(); //啟動一個web服務(wù)器 app.get("/",function(req,res){ res.send("Hello Node.js"); }) const server = app.listen(3000,function(){ let port = server.address().port; console.log("app listening at http://%s:%s","localhost",port); });
保存后,命令行進入app.js文件所在文件夾,運行命令node app.js,然后瀏覽器訪問http://localhost:3000,即會查看到返回"Hello Node.js"。
MongoDB可視化工具Robomongo為了測試方便,我們首先要往我們本地的MongoDB數(shù)據(jù)庫中插入一些數(shù)據(jù)。為了方便使用,MongoDB也有類似mysql navicat的圖形化管理工具Robomongo 1.0.0,下載地址:https://robomongo.org/download,下載安裝即可。
1.打開Robomongo,點擊左上角file->connect(快捷鍵ctrl+N),在彈出來的框中點擊create來創(chuàng)建連接。
2.輸入連接名字,以及地址名,端口默認為27017,地址address和端口一般不用更改。
這樣test為名字的MongoDB連接就創(chuàng)建了。
3.MongoDB 是由C++語言編寫的,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)。MongoDB和平常使用的MySQL是有比較大的區(qū)別的:
4.我們首先點擊左側(cè)剛剛創(chuàng)建的test連接,鼠標(biāo)右鍵單擊 create database,輸入是數(shù)據(jù)庫名testDb點擊create創(chuàng)建即可。
5.鼠標(biāo)左鍵單擊剛剛創(chuàng)建的testDb數(shù)據(jù)庫,創(chuàng)建collection(即為平常使用的數(shù)據(jù)庫中所說的table表),點擊create即可創(chuàng)建user 集合成功。
6.下面我們開始往user collection集合中插入數(shù)據(jù):鼠標(biāo)右鍵單擊user collection -> insert documet(插入文檔,即我們平常使用的sql數(shù)據(jù)庫中的行)。
7.MongoDB數(shù)據(jù)庫中文檔(每一行的數(shù)據(jù))的數(shù)據(jù)結(jié)構(gòu)和JSON基本一樣,所有存儲在集合中的數(shù)據(jù)都是BSON格式,BSON是一種類JSON的一種二進制形式的存儲格式,簡稱Binary JSON。因此,我們在插入數(shù)據(jù)時,只要像JSON格式那樣輸入我們想要插入的數(shù)據(jù)。點擊save保存即可成功插入數(shù)據(jù)。
{ userName:"dodo", sex:18, sex:"女", job:"font-end Engineer" }
8.雙擊user collection即可看到我們剛剛插入的那條數(shù)據(jù),MongoDB的主鍵自動將_id字段設(shè)置為主鍵。
開始連接數(shù)據(jù)庫1.使用MongoDB原生自帶的API來創(chuàng)建連接,直接在/server/app.js輸入以下代碼
var MongoClient = require("mongodb").MongoClient, DB_CONN_STR = "mongodb://localhost:27017/testDb"; # 數(shù)據(jù)庫為 testDb var selectData = function(db, callback) { //連接到user表 var collection = db.collection("user"); //查詢數(shù)據(jù) var whereStr = {"userName":"dodo"}; collection.find(whereStr).toArray(function(err, result) { if(err) { console.log("Error:"+ err); return; } callback(result); }); } MongoClient.connect(DB_CONN_STR, function(err, db) { console.log("連接成功!"); selectData(db, function(result) { console.log(result); db.close(); }); });
2.本項目使用Mongoose來配合MongoDB操作數(shù)據(jù)庫
mongoose是mongoDB的一個對象模型工具,是基于node-mongodb-native開發(fā)的mongoDB的nodejs驅(qū)動,可以在異步的環(huán)境下執(zhí)行。同時它也是針對mongoDB操作的一個對象模型庫,封裝了mongoDB對文檔的一些增刪改查等常用方法,讓nodejs操作mongoDB數(shù)據(jù)庫變得更加容易。
// 加載所需要的模塊 const mongoose = require("mongoose"); mongoose.Promise = require("bluebird"); const Schema = mongoose.Schema; const UserSchema = new mongoose.Schema({ username: String,//用戶名 sex: String,// 性別 age: Number, // 年齡 },{collection:"user"}) // 注意這里一定要帶有collection,否則mongoose會在下面model時對user添加后綴s. const Models = { User : mongoose.model("user", UserSchema) }; /** * 創(chuàng)建數(shù)據(jù)庫名稱并連接 * Connecting to Mongod instance. */ const dbHost = "mongodb://localhost/testDb"; mongoose.connect(dbHost); const db = mongoose.connection; db.on("error", function () { console.log("Database connection error."); }); db.once("open", function () { console.log("The Database has connected.") }); module.exports = Models;
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/19005.html
摘要:使用內(nèi)在模塊發(fā)送響應(yīng)數(shù)據(jù)監(jiān)聽端口終端打印如下信息使用框架本項目使用的框架來起服務(wù)器。數(shù)據(jù)庫中文檔每一行的數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)和基本一樣,所有存儲在集合中的數(shù)據(jù)都是格式,是一種類的一種二進制形式的存儲格式,簡稱。 前言 經(jīng)過上一篇經(jīng)濟基礎(chǔ)構(gòu)建的完成,那么現(xiàn)在正式開始碼代碼吧! 項目架構(gòu) showImg(https://segmentfault.com/img/bVNkQM?w=322&h=58...
摘要:前言由于最近公司需要做一個聊天監(jiān)控的項目,老大讓我把后臺也做了,于是才真正實踐深入的內(nèi)部。幾番折騰終于把項目搭起來了。發(fā)生服務(wù)特定錯誤,則前去目錄下的和文件刪掉,以管理員身份運行命令行然后重新啟動服務(wù)即可。 前言 由于最近公司需要做一個聊天監(jiān)控的項目,老大讓我把后臺也做了,于是才真正實踐深入node.js的內(nèi)部。幾番折騰終于把項目搭起來了。 經(jīng)濟基礎(chǔ) node.js (安裝配置傳送門...
摘要:前言由于最近公司需要做一個聊天監(jiān)控的項目,老大讓我把后臺也做了,于是才真正實踐深入的內(nèi)部。幾番折騰終于把項目搭起來了。發(fā)生服務(wù)特定錯誤,則前去目錄下的和文件刪掉,以管理員身份運行命令行然后重新啟動服務(wù)即可。 前言 由于最近公司需要做一個聊天監(jiān)控的項目,老大讓我把后臺也做了,于是才真正實踐深入node.js的內(nèi)部。幾番折騰終于把項目搭起來了。 經(jīng)濟基礎(chǔ) node.js (安裝配置傳送門...
摘要:本人前端萌新大概花了一周多一點,完成了一個前后端分離解耦的簡易個人博客項目。項目前后端分離,路由完全交給處理,后端只負責(zé)操作數(shù)據(jù)庫,暴露。目前項目提供做學(xué)習(xí)用途,希望能給大家一些幫助,對全棧項目有一個初步的了解,謝謝。 本人前端萌新大概花了一周多一點,完成了一個前后端分離解耦的簡易個人博客項目。項目前后端分離,路由完全交給vue-router處理,后端只負責(zé)操作數(shù)據(jù)庫,暴露api。 技...
摘要:利用中間件實現(xiàn)異步請求,實現(xiàn)兩個用戶角色實時通信。目前還未深入了解的一些概念。往后會寫更多的前后臺聯(lián)通的項目。刪除分組會連同組內(nèi)的所有圖片一起刪除。算是對自己上次用寫后臺的一個強化,項目文章在這里。后來一直沒動,前些日子才把后續(xù)的完善。 歡迎訪問我的個人網(wǎng)站:http://www.neroht.com/? 剛學(xué)vue和react時,利用業(yè)余時間寫的關(guān)于這兩個框架的訓(xùn)練,都相對簡單,有的...
閱讀 3241·2021-11-23 09:51
閱讀 2494·2021-09-27 13:34
閱讀 2476·2021-09-08 09:45
閱讀 675·2019-08-30 15:44
閱讀 3503·2019-08-29 12:17
閱讀 2769·2019-08-26 12:18
閱讀 2634·2019-08-26 10:10
閱讀 3087·2019-08-23 18:02