留言板

基于nodejs+express+art-template的留言板功能。包含列表界面、添加界面和发送留言功能。

所需类库

直接copy以下package.json 然后直接 npm install 或者yarn install 即可。

package.json所需内容如下。

{"name": "nodejs_message_board","version": "2021.09","private": true,"scripts": {"start": "node app"},"dependencies": {"art-template": "^4.13.2","debug": "~2.6.9","express": "~4.16.1","express-art-template": "^1.0.1"}
}

开源项目

本项目收录在【Node.js Study】nodejs开源学习项目 中的express_message_board 。欢迎大家学习和下载。

运行效果

  • localhost ,留言首页
  • localhost/post ,添加留言页面
  • localhost/say?name=xxx&message=xxx ,发送留言并重定向到首页功能

项目结构

index.html

这是留言列表,也是首页。根据传过来的值渲染列表。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>留言板</title><link rel="stylesheet" href="/public/css/bootstrap4.css">
</head>
<body>
<div class="header container"><div class="page-header"><h1>留言板 <small>留言列表</small></h1><a class="btn btn-success" href="/post">发表留言</a></div>
</div>
<div class="comments container"><ul class="list-group">{{each comments}}<li class="list-group-item">{{$value.name}}说:  {{$value.message}}<span class="pull-right">{{$value.datetime}}</span></li>{{/each}}</ul>
</div>
</body>
</html>

post.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>留言板</title><link rel="stylesheet" href="/public/css/bootstrap4.css">
</head>
<body>
<div class="header container"><div class="page-header"><h1><a href="/" >留言板 <small>添加留言</small></a></h1></div>
</div>
<div class="comments container"><form action="/say" method="GET"><div class="form-group"><label for="name">你的大名</label><input type="text" id="name" name="name" class="form-control" placeholder="请输入姓名" required minlength="2" maxlength="10"></div><div class="form-group"><label for="message">留言内容</label><textarea id="message" name="message" class="form-control" placeholder="请输入留言内容" cols='30' rows='10' required minlength="5" maxlength="20"></textarea></div><button type="submit" class="btn btn-default">发表</button></form>
</div>
</body>
</html>

route/index.js

这里是路由器

const express = require('express');
const router = express.Router();// 模拟首页留言列表数据
var comments= {"comments":[{name:"AAA",message:"你用什么编辑器?WebStorem or VSCODE",datetime:"2021-1-1"},{name:"BBB",message:"今天天气真好?钓鱼or代码",datetime:"2021-1-1"},{name:"Moshow",message:"zhengkai.blog.csdn.net",datetime:"2021-1-1"},{name:"DDD",message:"哈与哈哈与哈哈哈的区别",datetime:"2021-1-1"},{name:"EEE",message:"王守义十三香还是iphone十三香",datetime:"2021-1-1"}
]}/* by zhengkai.blog.csdn.net - 静态路由托管 */
router.get('/', function(req, res, next) {res.render('index', comments);
});
router.get('/post', function(req, res, next) {res.render('post', comments);
});
router.get('/say', function(req, res, next) {console.log(req.query)console.log(req.url)const comment=req.query;comment.datetime='2021-10-01';comments.comments.unshift(comment);//重定向到首页,没有url后缀 localhostres.redirect('/');//直接渲染首页,有url后缀 localhost/say?xxxx=xxx//res.render('index', comments);
});module.exports = router;

app.js

这里作为总控制

//加载模块
const http=require('http');
const fs=require('fs');
const url=require('url');
const template=require('art-template');
const path = require('path');
const express = require('express');
const router = express.Router();
const app = express();// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'html');
app.engine('html',require('express-art-template'));app.use('/public',express.static(path.join(__dirname, 'public')));const indexRouter = require('./routes/index');
app.use('/', indexRouter);//创建监听对象
app.listen(80,function(){console.log('zhengkai.blog.csdn.net 项目启动成功 http://localhost')
})

补充:关于unshift的用法

https://www.w3school.com.cn/jsref/jsref_unshift.asp

把一个元素添加到数组的开头,并返回数组的新长度

var arr = new Array()
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
console.log(arr.unshift("William"))
console.log(arr)

nodejs+express留言板功能实现相关推荐

  1. php给留言分配id_简单实现PHP留言板功能

    本文实例为大家分享了PHP留言板功能的具体实现代码,供大家参考,具体内容如下 HTML代码 PHP留言本 留言者: {$vo.nickname} | 邮箱: {$vo.email} 时间: {$vo. ...

  2. html留言板 php,linux下使用Apache+php实现留言板功能的网站

    一.首先我们的linux服务器上要安装Apache和php php的安装方法和Apache方法如同一辙 二.关闭防火墙服务,关闭selinux 请参考:http://www.cnblogs.com/d ...

  3. phpcms留言板功能的实现

    文章目录 phpcms如何```实现留言板```功能? 1. 留言板插件下载 及 使用说明: 2. 解压并安装 3. 代码调用教程 4. 参考代码1:(附图) 5. 参考代码2:(附图) 6. 后台接 ...

  4. vue实现留言板的功能_基于vue和bootstrap实现简单留言板功能

    本文实例为大家分享了vue实现简单留言板功能的具体代码,供大家参考,具体内容如下 作为一个刚开始接触vue的前端小白,我想在这里记录一些学习过程,希望和大家一起进步,如有不妥处之处,请多多指教呦. 今 ...

  5. PHP+MySQL实现留言板功能(一)

    1.登陆注册页面前端设计 由于小编第一次写博客,加上前端知识还不够扎实,本文小编着重处理后端,及PHP连接数据库,实现添加留言,删除留言功能.话不多说,我们直接上代码. 登陆页面设计:我们将其命名为: ...

  6. PHP 留言板功能需求分析

    一.PHP 留言板功能需求分析: 功能需求:用户利用留言板可以发表自己的留言,管理员可以在后台对留言进行回复或删除管理. 主要功能分为:前台用户留言展示 与 后台留言管理 两个部分. 二.前台用户留言 ...

  7. php简易留言板功能,PHP实现简单留言板功能的方法

    这篇文章主要为大家详细介绍了PHP简单留言板功能的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 具体内容如下: index.php error_reporting(0); //关闭NOT ...

  8. php留言板的实验步骤,PHP实现基本留言板功能原理与步骤详解

    本文实例讲述了PHP实现基本留言板功能的方法.分享给大家供大家参考,具体如下: 作为一个PHP的初学者,我试着写了一个留言板,页面有点丑,多多见谅,嘻嘻嘻 #我们写留言板需要用到数据库,所以我们先要建 ...

  9. JavaScript用事件委托实现留言板功能

    用事件委托实现留言板功能. <!DOCTYPE html> <html lang="en"><head><meta charset=&qu ...

  10. vue脚手架实现留言板功能

    利用vue-cli创建的vue脚手架,实现留言板功能 1.搭建项目结构 命令行中创建vue项目,在src路径下的assets文件夹中创建images文件夹存放用户头像,并新建一个pages文件夹用于存 ...

最新文章

  1. 20150917html第二次课
  2. ASP.net MVC基础
  3. MPLS-组网组网方案助连锁餐饮网络升级改造
  4. 操作系统(二十一)信号量机制
  5. java换脸_随意换脸 · ink-image/api Wiki · GitHub
  6. IBM并购网络视频会议商WebDialogs 加入Lotus Sametime
  7. 把CheckBox的方块换成图片或其他
  8. 【转】ZooKeeper学习第二期--Zookeeper命令操作
  9. 自动更新统计信息的阀值——人为更新统计信息的重要性
  10. php session 自定义的设置测试
  11. IP Scanner Pro for mac(局域网IP扫描软件)
  12. 关于 iOS 的 StoryBoard,接受的那一刻才发现她的美 - 当然美的事物都需要业心照料...
  13. 机器学习视频推荐-绝对的通俗易懂(线性回归,逻辑回归,朴素贝叶斯分类器,K-近邻,SVM,决策树,随机森林,XGboost,k-means聚类)
  14. 2022-2028年中国淄博房地产行业市场发展潜力及投资策略研究报告
  15. c语言随机数字密码生成器,随机数生成器(浮点数整型数)
  16. android 多个按键精灵,给大家分享一个,按键精灵安卓版,找多图, 以及找多图返回多个坐标的,相信大家绝对用得到 _ 按键精灵手机版 - 按键精灵论坛...
  17. Python操作表格
  18. 309 Best Time to Buy and Sell Stock with Cooldown
  19. Windows PC连接苹果LG UltraFine 4K显示器教程
  20. Halcon形态学梯度

热门文章

  1. php中控车牌识别push协议,2、实时车牌识别上传及返回
  2. Android投屏,屏幕共享,两个设备互相投屏
  3. 奥维互动地图如何删除标签_奥维互动地图浏览器标签附件添加设置方法
  4. ZZULIOJ 1010~1019(oj入门题)
  5. cad插件加载bplot成功用不了_Batchplot批量打印命令无效,对照情况进行解决
  6. KEIL C51软件安装
  7. grub4dos 引导linux,Grub4dos系统引导
  8. 【51/STM32】详解控制系统中的继电器
  9. java multipy_python multi-thread multi-process
  10. 干燥环境对电子器件的影响