世界上最伟大的投资就是投资自己的教育
https://pugjs.org/language/includes.html
$ npm install pug --save
app.js
const express = require('express');
const path = require('path');
const app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.get('/', function(req, res) {
let articles = [
{
id: 1,
title: 'Title One',
author: 'hfpp2012'
},
{
id: 2,
title: 'Title Two',
author: 'hfpp2012'
},
{
id: 3,
title: 'Title Three',
author: 'hfpp2012'
}
]
res.render('index', {
articles: articles
});
})
app.get('/articles/new', function(req, res) {
res.render('new', {
title: 'Add Article'
});
})
app.listen(5000, function() {
console.log("Server started on port 5000...");
})
views/layout.pug
doctype html
html(lang="en")
head
body
block content
br
hr
footer
p Copyright © 2018
views/index.pug
extends layout
block content
ul
each article, i in articles
li= article.title
views/new.pug
extends layout
block content
h1 #{title}
03:481FreeNode.js + Express 实现多用户博客系统 #1 课程介绍
04:402FreeNode.js + Express 实现多用户博客系统 #2 搭建项目代码
09:46FreeNode.js + Express 实现多用户博客系统 #3 pug 模板引擎
07:474ProNode.js + Express 实现多用户博客系统 #4 MongoDB 的安装与使用
09:215ProNode.js + Express 实现多用户博客系统 #5 Node.js 使用 Mongoose 连接 MongoDB 数据库
05:226ProNode.js + Express 实现多用户博客系统 #6 保存文章到 MongoDB
07:387ProNode.js + Express 实现多用户博客系统 #7 用 bower 来管理 Bootstrap 和 jQuery
03:038ProNode.js + Express 实现多用户博客系统 #8 显示文章的内容
04:399ProNode.js + Express 实现多用户博客系统 #9 修改文章的内容
06:2010ProNode.js + Express 实现多用户博客系统 #10 删除文章
08:5611ProNode.js + Express 实现多用户博客系统 #11 显示 flash 信息
06:2912ProNode.js + Express 实现多用户博客系统 #12 表单验证
05:1313ProNode.js + Express 实现多用户博客系统 #13 使用路由中间件重构代码
05:4014ProNode.js + Express 实现多用户博客系统 #14 显示注册用户的表单
04:4615ProNode.js + Express 实现多用户博客系统 #15 注册页面表单验证
04:1416ProNode.js + Express 实现多用户博客系统 #16 注册功能加密密码保存到数据库
04:2617ProNode.js + Express 实现多用户博客系统 #17 登录页面和 cookies 概念
06:4618ProNode.js + Express 实现多用户博客系统 #18 登录认证工具 passport 介绍
05:0419ProNode.js + Express 实现多用户博客系统 #19 使用 passport 实现登录功能 part 1
06:3820ProNode.js + Express 实现多用户博客系统 #20 使用 passport 实现登录功能 part 2
04:0021ProNode.js + Express 实现多用户博客系统 #21 实现注销功能
06:4422ProNode.js + Express 实现多用户博客系统 #22 文章与用户关联实现访问控制 part 1
04:0223ProNode.js + Express 实现多用户博客系统 #23 文章与用户关联实现访问控制 part 2(完结)
▬▬▬▬▬▬ 联系我 👋 ▬▬▬▬▬▬
微信:qiuzhi99pro
b 站:https://space.bilibili.com/31152817
知乎:https://www.zhihu.com/people/rails365
Github:https://github.com/hfpp2012
Youtube:https://www.youtube.com/channel/UCA-Jkgr40A9kl5vsIqg-BIg
© 汕尾市求知科技有限公司 | 创业者社区 | Rails365 Gitlab | Qiuzhi99 Gitlab | Railstart 创业项目 | 知乎 | b 站 | 搜索
粤公网安备 44152102000088号
| 粤ICP备19038915号
在这个教程中使用了模板引擎了,请问这是否造成了前后端耦合了?
是的
完全可以分开, 只需要 send json 前端获取就拿到了 我用 vue 已经重构了
啥自行车?
随风,你好,这个 pug 模版在 NODE_ENV=production 生产模式时,更改模版无法即时生效,必须重启项目才能生效,要如何设置才能不重启项目使更新的模版生效?
这是生产环境呀 就是放到网站上的 手动重启是合理的 也是正常的 不过可以用一些工具自动部署重启
谢谢回复,pm2 可以做到吗?
pm2 可以做到的,可以自动部署,不过有一个工具也可以 https://github.com/shipitjs/shipit
谢谢,我研究下
请问导出 Mongoose Schema 的时候
let Article = module.exports = mongoose.model('Article', articleSchema);
写成
module.exports = mongoose.model('Article', articleSchema);
有区别吗?
Article 变量没被用到的话,应该没区别的,你可以 试下
这里说下我个人 观点 这个也是在一本 express node 开发看到的 ,模版引擎是基于过去 MVC 来说 的 老的 MVC view 部分渲染生成通过 controller 控制器,那个时候需要 view 引擎, 现在如果做前后剥离画的 前端发送 ajax 请求 获取 json 数据完成渲染就行 看你如何 架构 如果 通过 mvc 架构 你还是需要的 如果写不惯 pug 可以用下 handlebar 感觉更像前端一点 写完可以把 view 部分用 vue react 从构下