原文来源: 全栈初体验javascript
听说如今不会点后台的前端都找不到工做了
吓得我这几天看起了Nodejs
和MongoDB
而且作了一个应该算是最简单的先后端例子,如图
输入帐户密码,提交表单,保存信息到数据库
再重定向到 showInfo 页面获取数据库中的信息,渲染在浏览器上
具体代码: githubcss
前端模板: jade
后台框架: express-generator
数据库链接: mongoosehtml
默认电脑已安装nodejs
,yarn
或者npm
,MongoDB
前端
yarn add express-generator // express infoSave // 建立生成 express 项目 cd infoSave yarn install // 安装依赖包 yarn start // 能够到 localhost:3000 看到运行界面 yarn add mongoose // 安装 mongoose,不须要安装jade,express-generator自动安装了
cd views
将 index.jade 文件内容修改成java
extends layout block content h1= title p Welcome to #{title} form(method="post", action="/") babel(for="user") 用户名 input(type="text",name="user",id="user") br babel(for="passwd") 密码 input(type="password",name="passwd",id="passwd") br input(type="submit",value="提交")
touch showInfo.jadenode
extends layout block content h1= title p Welcome to #{title} ul each info, i in infos li span.user 帐户: #{info.user}      span.passwd 密码: #{info.passwd}
这两个jade是咱们 / 和 /showInfo 两个路由所渲染的页面git
cd index.js
修改成github
router.get('/', function(req, res, next) { res.render('index', { title: 'infoSave' }); });
添加mongodb
router.get('/showInfo', function(req, res, next) { infos.find({}, function(err, docs){ if(err) { res.render('showInfo', { title: 'showInfo' }); }else { res.render('showInfo', { title: 'showInfo', infos: docs }); } });
public文件夹中的stylesheets文件夹新建一个css文件form.cssshell
form { width: 300px; height: 300px; } babel { display: block; font-size: 20px; } input:not([type="submit"]) { box-sizing: border-box; padding: 5px; width: 200px; font-size: 15px; float: right; } input[type="submit"] { float: right; width: 100px; padding: 5px; background: #79f; cursor: pointer; font-size: 15px; }
此时 yarn start
会发现 localhost:3000 能够加载
localhost:3000/showInfo 会报错,
由于咱们尚未进行数据的交互
在 infoSave 目录下,建立两个文件夹
schemas文件夹存放数据库集合的模型骨架
models文件夹存放Schema构造实例进行数据操做
文件夹schemas, 在里面建立文件 info.js,内容为
let mongoose = require('mongoose'); let InfoSchema = new mongoose.Schema({ user: String, passwd: String }) // 导出InfoSchema模式 module.exports = InfoSchema;
文件夹models,建立文件 info.js,内容为
let mongoose = require('mongoose'); let infoSchema = require('../schemas/info.js'); //引入'../schemas/info.js'导出的模式模块 // 编译生成info模型 let infos = mongoose.model('userInfo', infoSchema); // 将info模型[构造函数]导出 module.exports = infos;
app.js文件添加
// 链接MongoDB中的 infoDB 数据库,若没有则自动生成 var mongoose = require('mongoose'); mongoose.connect('mongodb://127.0.0.1:27017/infosDB');
到此,咱们的工程结束了,yarn start
试试看,记得先开启MongoDB
啊,有一种搬代码,没有写教程的感受
第一次本身搭建运行先后端环境,真是愉悦呀
欢迎私信交流,也能够看我博客cheesekun.top?