一个完整的网站服务架构包括:
一、web frame ---这里应用express框架
二、web server ---这里应用nodejs
三、Database ---这里应用monggoDB
四、前端展现 ---这里应用vuehtml
首先咱们要安装mongoDB(本例应用的mongoDB 3.4.7版本) 和 nodejs(本例应用的是nodejs v6.10.3) 具体安装步骤你们能够百度一下,网上安装示例不少,这里不过多讲解,如下咱们重点讲解网站框架搭建操做。前端
对应以上要点一一做出解释及具体操做步骤:
第一步:建立mongoDB数据库
一、直接打开mongoDB安装目录下binmongod.exe文件,可见以下图,即为数据库服务启动成功vue
二、浏览器输入localhost:27017显示以下,证实数据库可用node
第二步:生成vue框架
一、全局生成vue框架,输入指令
npm i -g vue-cliwebpack
二、建立本身的文件夹web
三、项目初始化
执行如下命令,自动建立目录 E:/workspace/test
一路yes以下
生成目录结构以下:mongodb
执行命令,进行项目初始化:
cd test
npm installvue-cli
四、在项目根目录src/main.js添加代码
import vueResource from 'vue-resource'
Vue.use(vueResource)
如图所示数据库
五、因为上一步添加代码vue-resource,这里要引入vue-resource
执行命令如图所示
执行后显示以下,则为正常执行express
第三步:生成expressm框架
一、执行命令npm install express,生成以下
第四步:搭建node服务器环境
一、在项目的根目录新建一个叫server的目录,用于放置Node的东西。进入server目录,再新建三个js文件:
index.js (入口文件)
db.js (设置数据库相关)
api.js (编写接口)
index.js文件代码:
// 引入编写好的api const api = require('./api'); // 引入文件模块 const fs = require('fs'); // 引入处理路径的模块 const path = require('path'); // 引入处理post数据的模块 const bodyParser = require('body-parser') // 引入Express const 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.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); 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;
二、对比node_modules目录缺乏body-parser模块和mongoose模块,所以要添加这两个模块
执行命令:
三、至此咱们的后端代码就编写好了,进入server目录,敲上 node index命令,node就会跑起来,这时在浏览器输入http://localhost:8088/api/log...就能访问到这个接口了,执行命令以下:
四、如今咱们的本地开发环境的 web server的接口是 index.js 里的8088,可是本地的webpack生成的网页端口是8080,这两个不一致。须要进行代理(proxy)在config/index.js 中修改
五、这时,从新启动项目
咱们在前端接口地址前加上/api,就会指向http://localhost:8088/api/,因而咱们就能访问到后端的接口了!
第五步:先后端开发完成,最后一步,前端打包,后端部署。
一、前端打包就很简单了,一个命令:
npm run build 这就生成了一个dist目录,里面就是打包出来的东西。
如今回过头来看server里面的入口文件index.js
最后,咱们在浏览器输入http://localhost:8088/,就会跳到index.html。
到此为止,咱们就完成了整个先后端各自开发到正式部署的流程。