亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

MEVN 架構(MongoDB + Express + Vue + NODEJS)制作網站

2024-04-27 15:12:25
字體:
來源:轉載
供稿:網友

MEVN 架構(MongoDB + ExPRess + Vue + NODEJS)制作網站

MEVN 架構是 MongoDB + Express + Vue + NODEJS 搭建的網站架構。四個部分都可以用javaScript實現。

一個完整的網站服務架構包括web frame, web server, Database, 以及前端展示實現。這里有一篇知乎答案,講一個網站的整個訪問流程,講的很清晰。

在這個架構里,web server 就是nodejs,webframe 就是express,database是mongoDB,前端展示用了vue。我們一個一個來搭建。

我們在這里模擬實現一個登錄功能。

功能很簡單,填寫完賬號密碼點擊登錄按鈕,就把賬號密碼插入數據庫,并且查出現在已經有哪些數據。

Database MongoDB

安裝

brew install mongodb

啟動

mongod --config /usr/local/etc/mongod.conf

這時只是啟動了Mogod,鏈接數據庫需要再另外的窗口執行

mongo

輸出

MongoDB shell version v3.4.1connecting to: mongodb://127.0.0.1:27017MongoDB server version: 3.4.1Welcome to the MongoDB shell.

這個地址mongodb://127.0.0.1:27017就是我們本機的mogo數據庫地址

使用 Vue-cli 生成一個vue框架

安裝Vue-Cli

npm i -g vue-cli

去到你想要放置項目的目錄,進行初始化

vue init webpack XXX(你想要項目的名字)

按提示一直下一步,完成后按提示

cd XXX

npm install (這里建議使用淘寶鏡像cnpm,不然墻外的東西……)

npm run dev

由于需要使用http請求,安裝一個vue-resource工具。

在main.js中使用

import vueResource from 'vue-resource'Vue.use(vueResource)EXPRESS

使用npm安裝

npm install express –save搭建node服務器環境

在項目的根目錄新建一個叫server的目錄,用于放置Node的東西。進入server目錄,再新建三個js文件:

index.js (入口文件) db.js (設置數據庫相關) api.js (編寫接口)

index.js

// 引入編寫好的apiconst api = require('./api'); // 引入文件模塊const fs = require('fs');// 引入處理路徑的模塊const path = require('path');// 引入處理post數據的模塊const bodyParser = require('body-parser')// 引入Expressconst express = require('express');const app = express();app.use(bodyParser.json());app.use(bodyParser.urlencoded({extended: false}));app.use(api);// 訪問靜態資源文件 這里是訪問所有dist目錄下的靜態資源文件app.use(express.static(path.resolve(__dirname, '../dist')))// 因為是單頁應用 所有請求都走/dist/index.htmlapp.get('*', function(req, res) { const html = fs.readFileSync(path.resolve(__dirname, '../dist/index.html'), 'utf-8') res.send(html)})// 監聽8088端口app.listen(8088);console.log('success listen…………');

db.js

// Schema、Model、Entity或者Documents的關系請牢記,Schema生成Model,Model創造Entity,Model和Entity都可對數據庫操作造成影響,但Model比Entity更具操作性。const mongoose = require('mongoose');// 連接數據庫 如果不自己創建 默認test數據庫會自動生成mongoose.connect('mongodb://127.0.0.1:27017'); // 地址跟第一步的地址對應。// 為這次連接綁定事件const db = mongoose.connection;db.once('error',() => console.log('Mongo connection error'));db.once('open',() => console.log('Mongo connection successed'));/************** 定義模式loginSchema **************/const loginSchema = mongoose.Schema({ account : String, passWord : String});/************** 定義模型Model **************/const Models = { Login : mongoose.model('Login',loginSchema)}module.exports = Models;

api.js

// 可能是我的node版本問題,不用嚴格模式使用ES6語法會報錯"use strict";const models = require('./db');const express = require('express');const router = express.Router();/************** 創建(create) 讀取(get) 更新(update) 刪除(delete) **************/// 創建賬號接口router.post('/api/login/createAccount',(req,res) => { // 這里的req.body能夠使用就在index.js中引入了const bodyParser = require('body-parser') let newAccount = new models.Login({ account : req.body.account, password : req.body.password }); // 保存數據newAccount數據進mongoDB newAccount.save((err,data) => { if (err) { res.send(err); } else { res.send('createAccount successed'); } });});// 獲取已有賬號接口router.get('/api/login/getAccount',(req,res) => { // 通過模型去查找數據庫 models.Login.find((err,data) => { if (err) { res.send(err); } else { res.send(data); } });});module.exports = router;

至此我們的后端代碼就編寫好了,進入server目錄,敲上 node index命令,node就會跑起來,這時在瀏覽器輸入http://localhost:8088/api/login/getAccount就能訪問到這個接口了

現在我們的本地開發環境的 web server的接口是 index.js 里的8088,但是本地的webpack生成的網頁端口是8080,這兩個不一致。需要進行代理(proxy)在config/index.js 中修改

proxyTable: { '/api': { target: 'http://localhost:8088/api/', changeOrigin: true, pathRewrite: { '^/api': '' } } }

這時,我們在前端接口地址前加上/api,就會指向http://localhost:8088/api/,于是我們就能訪問到后端的接口了!讓我們來點擊一下登錄按鈕,會發現接口請求成功了!再去數據庫看看!也插入了一條新數據!成功!

前后端開發完成,最后一步,前端打包,后端部署。 前端打包就很簡單了,一個命令: npm run build 這就生成了一個dist目錄,里面就是打包出來的東西。 現在回過頭來看server里面的入口文件index.js

// 訪問靜態資源文件 這里是訪問所有dist目錄下的靜態資源文件

app.use(express.static(path.resolve(__dirname, ‘../dist’)))

// 因為是單頁應用 所有請求都走/dist/index.html

app.get(‘*’, function(req, res) {

const html = fs.readFileSync(path.resolve(__dirname, '../dist/index.html'), 'utf-8')res.send(html)

})

// 監聽8088端口

app.listen(8088);

這里的關鍵是express.static,利用 Express 托管靜態文件。于是我們才能訪問到前端打包出來的靜態頁面index.html。

最后,我們在瀏覽器輸入http://localhost:8088/,就會跳到index.html。

到此為止,我們就完成了整個前后端各自開發到正式部署的流程。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
操人视频在线观看欧美| 91精品久久久久久久久久另类| 国产精品日日做人人爱| 久久久国产精品亚洲一区| 蜜月aⅴ免费一区二区三区| 亚洲精品一区二区三区婷婷月| 国产精品一区二区三区免费视频| 国产z一区二区三区| 欧美日韩黄色大片| 欧美日韩亚洲一区二区三区| 亚洲成人av片| 成人亲热视频网站| 日本午夜人人精品| 日韩av在线最新| 亚洲色图偷窥自拍| 亚洲性生活视频在线观看| 一区二区三区动漫| 91国产精品电影| 午夜欧美大片免费观看| 亚洲福利在线播放| 久久艳片www.17c.com| 91亚洲精品一区二区| 亚洲精选中文字幕| 久久av资源网站| 国产精品视频精品| 91精品国产自产在线老师啪| 亚洲无限乱码一二三四麻| 国产精品一区电影| 国产91|九色| 欧美精品精品精品精品免费| 国产精品wwwwww| 日韩欧美在线视频免费观看| 高清亚洲成在人网站天堂| 亚洲午夜未删减在线观看| 欧美成人自拍视频| 正在播放亚洲1区| 亚洲国产91精品在线观看| 欧美国产日本高清在线| 欧美亚洲午夜视频在线观看| 九色91av视频| 色妞在线综合亚洲欧美| 久久久成人av| 欧美日韩在线影院| 欧美日本亚洲视频| 午夜精品福利电影| 91亚洲精品一区二区| 成人性生交大片免费看视频直播| 国产精品r级在线| 爽爽爽爽爽爽爽成人免费观看| 日韩av第一页| 97碰碰碰免费色视频| 国产午夜精品一区理论片飘花| 欧美精品做受xxx性少妇| 日本一区二区在线播放| 亚洲精品综合久久中文字幕| 久久综合网hezyo| 一个人看的www久久| 91天堂在线视频| 色七七影院综合| 亚洲精品国产综合区久久久久久久| 亚洲一区二区三区成人在线视频精品| 亚洲va男人天堂| 波霸ol色综合久久| 欧美伦理91i| 欧美裸身视频免费观看| 日本aⅴ大伊香蕉精品视频| 国产亚洲精品久久久久久| 国内免费精品永久在线视频| 日韩成人小视频| 日韩精品免费在线| 日韩av在线免播放器| 中文综合在线观看| 欧美精品成人在线| 欧美日韩精品在线视频| 97视频在线看| 日韩中文字幕在线精品| 精品国产一区二区三区久久| 91精品久久久久久| 国产精品激情av在线播放| 日韩视频一区在线| 亚洲国产日韩欧美在线图片| 福利视频导航一区| 欧美特级www| 久久香蕉精品香蕉| 国产中文字幕亚洲| 国产一区二区三区精品久久久| 国产福利精品av综合导导航| 成人在线一区二区| 亚洲第一免费网站| 粉嫩老牛aⅴ一区二区三区| 亚洲男人天堂2024| 国产精品欧美久久久| 欧美视频国产精品| 久久精品欧美视频| 成人有码视频在线播放| 日本亚洲欧洲色α| 亚洲人精品午夜在线观看| 欧美中文字幕视频| 国产综合久久久久| 日韩欧美成人精品| 成人黄色免费看| 久久综合五月天| 国产精自产拍久久久久久蜜| 亚洲国产婷婷香蕉久久久久久| 91最新国产视频| 亚洲第一福利在线观看| 国产在线观看91精品一区| 91经典在线视频| 97色在线视频观看| 国产精品欧美日韩| 97超碰蝌蚪网人人做人人爽| 国产精品精品视频一区二区三区| 91亚洲国产成人久久精品网站| 中文字幕亚洲色图| 欧美色欧美亚洲高清在线视频| 国产精品久久久久免费a∨| www.美女亚洲精品| 亚洲精品久久久久中文字幕欢迎你| 色偷偷噜噜噜亚洲男人的天堂| 中文字幕亚洲综合久久筱田步美| 国产精品一区二区久久精品| 91精品视频专区| 欧美理论片在线观看| 欧美一级在线亚洲天堂| 欧美国产高跟鞋裸体秀xxxhd| 日韩欧美成人网| 精品久久国产精品| 亚洲的天堂在线中文字幕| 欧美日韩亚洲91| 欧洲精品在线视频| 国产精品视频男人的天堂| 国产一区二区在线免费| 日韩中文在线视频| 亚洲美女av黄| 成人观看高清在线观看免费| 久久国产精品久久久| 狠狠色狠狠色综合日日五| 欧美日韩一区二区精品| 国产91精品高潮白浆喷水| 日韩经典中文字幕| 亚洲一区999| 久久免费精品视频| 欧美日韩久久久久| 日本不卡高字幕在线2019| 91九色国产视频| 欧美亚洲另类激情另类| 日韩一区av在线| 爽爽爽爽爽爽爽成人免费观看| 亚洲视频在线播放| 91久久国产精品| 2019中文字幕全在线观看| 中文字幕精品www乱入免费视频| 亚洲欧美在线一区| 久久偷看各类女兵18女厕嘘嘘| 欧美性猛交xxxx黑人| 国产69精品久久久| 91精品国产91久久久久久久久| 亚洲国产成人精品久久| 日韩欧美高清在线视频| 国产一区二区三区在线观看网站| 亚洲综合社区网| 精品中文字幕视频| 亚洲va国产va天堂va久久| 亚洲午夜av久久乱码|