笔记:关于express和express-art-template 在node中使用

因为在写一个前后台留言板的时候,使用了node框架express,并结合了express的art-template模板引擎,有些地方不懂,看了官方API和各种博客后.... emmm 还是没懂,要么就是大神写的看不太懂,要么就是没有注释只有代码,看的太痛苦惹

在弄明白之后,打算自己写一个,把自己没弄明白的东西写出来整理一下做个笔记,或许还有跟我一样总是犯些沙雕错误的沙雕网友能看到呢...


目录大概是这样子的:

结构

铺页面

用bs写好首页和留言页后,大概长这样:
当然还咩有把数据渲染上去


html中的模板引擎写法
home.html
post.html

首先先在npm里下好了需要的依赖

这里没有图惹,是express art-template bootstrap express-art-template body-parser这样子

创建好服务器

加载了express和body-parser

const express=require("express");
const bodyParser=require("body-parser");
let app=express();

配置express-art-template模板

app.engine();

  • 第一个参数:表示当渲染以html后缀名的文件时,使用art-template模板引擎渲染
  • require("express-art-template") 相当于加载了 express-art-template 加载后用它去渲染html格式的文件
  • express-art-template整合了express和art-template
app.engine("html",require("express-art-template"));

配置body-parser

body-parser 是express的post请求中用来获得请求体(请求参数)的一种第三方包

因为post请求不会再通过url传递参数了,所以就使用body-parser来获取了,配置之后会给请求中的req添加一个body属性来获取请求参数(获取页面提交表单的内容)


app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());

静态资源加载

app.use();

  • 第一个参数的意思是:以node_modules开头的网络请求:


    一个css文件
  • 第二个参数: 这种类型的资源,会在node_modules文件夹下寻找它的文件然后加载


    查看node_modules
  • ./表示当前

app.use("/node_modules",express.static("./node_modules"));

写一个json

用来写留言的,json放入data 在home.html里渲染

let comments = [
    {
        name: '张三',
        message: '今天天气不错!',
        dateTime: '2015-10-16'
    },
    {
        name: '张三2',
        message: '今天天气不错!',
        dateTime: '2015-10-16'
    },
    {
        name: '张三3',
        message: '今天天气不错!',
        dateTime: '2015-10-16'
    },
    {
        name: '张三4',
        message: '今天天气不错!',
        dateTime: '2015-10-16'
    },
    {
        name: '张三5',
        message: '今天天气不错!',
        dateTime: '2015-10-16'
    }
];

let data={
    list:comments
};

处理请求(get,post两种方法)

app.get()

express的get方法 就是express里的路由

  • 第一个参数:是你要访问的路径
  • 第二个参数:函数,你要访问这个路径后做的操作

res.render(); 渲染方法

res对象本身是没有render方法的,当配置了express-art-template才会给其添加此方法

  • 第一个参数:你要渲染的页面(写views目录下的相对路径) 这里的views可以通过set方法修改


    查看views

记录下掉的坑,views文件是可以改变路径的,如果使用官方推荐的结构,可以默认不写

app.set("views","设置的render的默认路径")
  • 第二个参数:你要渲染上去的数据(一定要是json格式)

我犯的沙雕错误:传入了一个数组...看了快半个小时才发现,真的是要哭了,对不起我的头发!
//加载主页
app.get("/",(req,res)=>{
    res.render("home.html",data);
});
//加载留言页
app.get("/post",(req,res)=>{
    res.render("post.html");
});

现在用数据已经把home.html和post.html渲染好啦 大概长这样:

这里可以用端口号访问了,点击发布留言进入到post.html,输入留言了


home.html

输入留言后,点击post.html中的submit提交的数据,这里就得到提交的数据做处理,再跳转回首页显示

app.post(); express里的post方法
res.redirect();express里封装好的重定向方法,参数是重定向的路径

req.body就获得到了我在页面提交数据传递过来的参数,然后再添加一个键值对,把这条新提交的数据添加入存留言的那个json

app.post("/mes",(req,res)=>{
    //post方法获取到了请求参数
    // console.log(req.body);
    //req.body.dateTime 添加一个键值对
    req.body.dateTime="2015-10-16";
    comments.unshift(req.body);
    //重定向 参数是重定向的路径
    res.redirect("/");
});

写个端口号

app.listen();

app.listen(7000);

就写完了~

大概长这样了,没有数据库,没有专门保存数据的文件,只是用来学习express和模板引擎的一个练习,虽然很菜,但还是觉得自己棒棒的,嗯 干巴爹

嘿嘿
QQ图片20181127195841.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354

推荐阅读更多精彩内容