web前端培訓分享node學習筆記
愛創課堂 web前端培訓分享 node學習筆記
一、NodeJS如何連結mongodb
NodeJS中連結Mongodb
1、安裝
cnpm install mongodb -S
2、建立連結的地址
3、連結
const mongoClient = require( “mongodb” ).MongoClient; //2、建立連結的方式 const url = “mongodb://127.0.0.1:27017” ; //3、建立連結的資料庫 const db_name = “gp17” ; //4、連結 mongoClient.connect(url,(err,client)=>{
if (err){
console.log( “連結失敗” )
} else {
console.log( “連結成功” )
//5、連結資料庫以及表 var user = client.db(db_name).collection( “user” );
}})
二、mongoose的基本使用
1、mongoose與mongodb的區別
參考上面的
2、NodeJS連結mongoose
const mongoose = require( ‘mongoose’ ); //是一個建構函式 用來限制表的欄位型別 const Schema = mongoose.Schema; //連結的地址 const url = “mongodb://127.0.0.1:27017/gp17” ; //連結 mongoose.connect(url,(err)=>{
if (err){
console.log( “連結失敗” );
} else {
console.log( “連結成功” )
}}) //連結表/建立表 var StudentsSchema = new Schema({
sname : String ,
sage : Number }) //返回值是一個建構函式 const Students = mongoose.model( “student” ,StudentsSchema); //如果表的名稱是複數則 資料庫中的表名稱不會變 如果不是複數則資料庫中標的名稱會自動加s // mongoose.model(“students”,{// sname:String,// sage:Number// })
三、用所封裝好的路由+nodeJS+Mongoose+MVC實現登入註冊
< html lang = "en" >< head > < meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< meta http-equiv = "X-UA-Compatible" content = "ie=edge" >
< title > Document </ title >
< link rel = "stylesheet" href = "./css/index.css" ></ head >< body >
< h1 > index頁面 </ h1 >
< div >
< img src = "./img/u=2071817741,4218539796&fm=58&s=EE7A2FC0DE0120D6CF6D1509010070D2.jpg" alt = "" >
< img src = "./img/u=2708490274,319030395&fm=58&s=9E3269850EF36DB70811A15B03008060.jpg" alt = "" >
< img src = "./img/u=3473750589,1700978550&fm=58&s=4E946D84D2417CFE5C3FB5D90300D0B9.jpg" alt = "" >
< img src = "./img/u=3508817781,1654561115&fm=58&s=6D83639716736DB3087070600300E070.jpg" alt = "" >
</ div >
< form id = "user" >
使用者名稱: < input type = "text" id = "username" >
密碼: < input type = "text" id = "password" >
< input type = "submit" >
</ form ></ body ></ html >< script src = "./js/index.js" ></ script >< script src = "https://cdn.bootcss.com/jquery/1.11.3/jquery.js" ></ script >
< script >
$( “#user” ).on( “submit” , function (e) {
e.preventDefault()
var username = $( “#username” ).val();
var password = $( “#password” ).val();
$.ajax({
url : “/user/register” ,
method : “post” ,
data : {
username,
password
},
success :function (data){
console.log(data);
}
})
}) </ script >
const http = require( “http” ); const router = require( “./router” ) const server = http.createServer(router) router.post( “/user/register” ,(req,res)=>{
console.log(req.body);
res.json({
code : 200 ,
errMsg : ‘’
})}) server.listen( 9000 ) const url = require( “url” ); const fs = require( “fs” ); const path = require( “path” ); const qs = require( “querystring” ) //收集事件 const routerMap = {
get : {},
post : {}} const router = function (req,res){
//給res新增一個json方法 res.json = function (obj){
res.end(JSON.stringify(obj))
}
//處理靜態資源 handleStatic(req,res);
//獲取使用者請求的方式 var method = req.method.toLowerCase();
//獲取使用者請求的地址 var {pathname,query} = url.parse(req.url, true );
if (method === “get” ){
if (routerMap.get[pathname]){
//將query的值賦值給req.query req.query = query;
routerMap.getpathname
} else {
res.end( “404” )
}
} else if (method === “post” ){
if (routerMap.post[pathname]){
var str = “” ;
//獲取post傳遞的引數 req.on( “data” ,(data)=>{
str += data;
})
req.on( “end” ,()=>{
req.body = qs.parse(str);
routerMap.postpathname
})
}
}} //註冊事件 router.get = function (path,callback){
routerMap.get[path] = callback;} //註冊事件 router.post = function (path,callback){
routerMap.post[path] = callback;} //處理所有的靜態資源訪問 function handleStatic(req,res){
var {pathname} = url.parse(req.url, true );
//獲取檔案的字尾 var ext = pathname.substring(pathname.lastIndexOf( "." ));
if (pathname === "/" ){
res.writeHead( 200 ,{ "content-type" : "text/html;charset=utf8" });
res.end(getFile(path.join(__dirname, "../public/index.html" )))
} else if (ext === ".css" ){
res.writeHead( 200 ,{ "content-type" : "text/css;charset=utf8" });
res.end(getFile(path.join(__dirname, "../public" ,pathname)));
} else if (ext === ".js" ){
res.writeHead( 200 ,{ "content-type" : "application/x-javascript;charset=utf8" });
res.end(getFile(path.join(__dirname, "../public" ,pathname)));
} else if ( /.*\.(jpg|png|gif)/ .test(ext)){
res.writeHead( 200 ,{ "content-type" : `image/${ RegExp .$1 };charset=utf8` });
res.end(getFile(path.join(__dirname, "../public" ,pathname)));
} else if (ext === ".html" ){
res.writeHead( 200 ,{ "content-type" : "text/html;charset=utf8" });
res.end(getFile(path.join(__dirname, "../public" ,pathname)));
}} function getFile(filePath){
return fs.readFileSync(filePath);} module.exports = router;
四、express的基本入門
1、什麼是express?
Express 是一個保持最小規模的靈活的 Node.js Web 應用程式開發框架,為 Web 和移動應用程式提供一組強大的功能
2、什麼是中介軟體
請求和回覆之間的一個應用
3、常見的中介軟體有哪些?
1、應用層中介軟體(http請求之類的應用)
const express = require( “express” ); const app = express(); //應用層的中介軟體 app.use((req,res,next)=>{
console.log( 123 );
next()}) app.use((req,res,next)=>{
console.log( 456 )
next()}) app.use((req,res,next)=>{
console.log( 789 );
next();}) app.use( “/home” ,(req,res,next)=>{
res.end( “home” );}) app.get( “/list” ,(req,res,next)=>{
res.end( “list” )}) app.post( “/list” ,(req,res,next)=>{
res.end( “list” )}) app.listen( 9000 ,()=>{
console.log( “server address:127.0.0.1:9000” )}) /* express中的中介軟體會分為哪幾類? 1、應用層中介軟體(http請求之類的應用) app.use app.get app.post 2、內建中介軟體 3、錯誤處理中介軟體 4、路由中介軟體 5、第三方中介軟體 6、自定義中介軟體 如何使用中介軟體? app.use(中介軟體) 使用中介軟體 app.use中的引數 path:選填 callback || router 如果是callback的請求下 這個回撥中會有3個引數 req:請求 res:響應 next:執行下一個中介軟體 只要http這個服務跑一次那麼久會將app.use中的所有函式統一執行一遍*/
2、內建中介軟體
const express = require( “express” ); const app = express(); const path = require( “path” ); //內建中介軟體 app.use(express. static (path.join(__dirname, “./public” ))) app.listen( 9000 ,()=>{
console.log( “server address:127.0.0.1:9000” )})
3、錯誤處理中介軟體
const express = require( “express” ); const app = express(); const path = require( “path” ); //內建中介軟體 app.use(express. static (path.join(__dirname, “./public” ))) //錯誤中介軟體處理一般寫在程式的最後面 app.use((req,res,next)=>{
res.status( 404 ).send( “沒有這個頁面” )}) app.listen( 9000 ,()=>{
console.log( “server address:127.0.0.1:9000” )})
4、路由中介軟體
const express = require( “express” ); const app = express(); const path = require( “path” ); const indexRouter = require( “./router/index” ); //內建中介軟體 app.use(express. static (path.join(__dirname, “./public” ))) //路由級別的中介軟體 app.use( “/user” ,indexRouter) app.listen( 9000 ,()=>{
console.log( “server address:127.0.0.1:9000” )})
5、第三方中介軟體
例如 cheerio jsonwebToken等
6、自定義中介軟體
自己根據需求封裝的中介軟體
前端技術每年都會不斷更新,學習前端開發建議大家還是要選擇培訓為好,推薦愛創課堂,是一家專門做前端教育的學校,愛創課堂是一家以就業為導向的前端培訓學校,所學習的就是企業所需要的,培養企業最需要的前端工程師為企業理念,授課以實戰課程為主,更多的學習大專案對以後工作有幫助,畢業後輕鬆就業!
一位好的Web前端開發工程師在知識體系上既要有廣度,又要有深度,所以很多大公司即使出高薪也很難招聘到理想的前端開發工程師。那麼如何系統的學習企業實用的web前端技術呢,前端學習培訓、視訊教程、學習路線,可以給我留言或私信我,獲取前端學習資料。相信從中會受到啟發,找到學習的方向和目標。如大家對前端還有不瞭解的問題,可以持續關注我。
相關文章
- 好程式設計師web前端培訓分享node學習筆記程式設計師Web前端筆記
- 好程式設計師web前端培訓分享node學習筆記系列之四十一程式設計師Web前端筆記
- 好程式設計師web前端培訓分享HTMLCSS學習筆記BFC程式設計師Web前端HTMLCSS筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記Promise程式設計師Web前端JavaScript筆記Promise
- 好程式設計師web前端培訓分享JavaScript學習筆記cookie程式設計師Web前端JavaScript筆記Cookie
- 好程式設計師web前端培訓分享JavaScript學習筆記SASS程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享React學習筆記(三)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享React學習筆記(一)程式設計師Web前端React筆記
- 好程式設計師web前端培訓分享React學習筆記(二)程式設計師Web前端React筆記
- 長沙Web前端培訓分享:Web前端學習路線Web前端
- 好程式設計師web前端培訓學習筆記Vue學習筆記一程式設計師Web前端筆記Vue
- 好程式設計師web前端培訓分享JavaScript學習筆記分支結構程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記之正則程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享JavaScript學習筆記之陣列程式設計師Web前端JavaScript筆記陣列
- 好程式設計師web前端培訓學習筆記Vue學習筆記之二程式設計師Web前端筆記Vue
- 好程式設計師web前端培訓分享JavaScript學習筆記函式進階程式設計師Web前端JavaScript筆記函式
- 好程式設計師web前端培訓分享JavaScript學習筆記之設計模式程式設計師Web前端JavaScript筆記設計模式
- 好程式設計師web前端培訓分享JavaScript學習筆記之ES5程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓JavaScript學習筆記DOM程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓JavaScript學習筆記--jQuery程式設計師Web前端JavaScript筆記jQuery
- 好程式設計師web前端培訓分享JavaScript學習筆記閉包與繼承程式設計師Web前端JavaScript筆記繼承
- 好程式設計師web前端培訓分享JavaScript學習筆記ajax及ajax封裝程式設計師Web前端JavaScript筆記封裝
- 好程式設計師web前端培訓分享JavaScript學習筆記之迴圈結構程式設計師Web前端JavaScript筆記
- 好程式設計師web前端培訓分享學習JavaScript程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享詳解JavaScript學習筆記建構函式程式設計師Web前端JavaScript筆記函式
- 好程式設計師web前端培訓分享之HTMLCSS學習筆記css3-多列程式設計師Web前端HTMLCSS筆記S3
- 好程式設計師web前端培訓分享HTMLCSS學習筆記css3選擇器程式設計師Web前端HTMLCSS筆記S3
- 好程式設計師web前端培訓分享JavaScript學習筆陣列的排序程式設計師Web前端JavaScript陣列排序
- web前端培訓學習技巧有哪些Web前端
- 好程式設計師web前端培訓分享JavaScript學習指南程式設計師Web前端JavaScript
- 好程式設計師web前端培訓分享之HTMLCSS學習筆記媒體查詢+ rem用法程式設計師Web前端HTMLCSS筆記REM
- 好程式設計師web前端培訓分享之uni-app學習筆記uni-app詳解程式設計師Web前端APP筆記
- Web前端培訓分享:Web前端到底是什麼?Web前端
- Web前端學習路線資料彙總,Web前端培訓學校Web前端
- web前端培訓要學多久Web前端
- Web前端培訓分享:Web前端三大主流框架對比!Web前端框架
- web前端培訓分享:web前端的工作方向是什麼?Web前端
- 好程式設計師web前端培訓HTMLCSS學習筆記之頁面最佳化程式設計師Web前端HTMLCSS筆記