小项目:简易社区制作

目录

1.起步

建一个community文件夹(项目根目录)
npm init:创建一个package.json文件管理项目信息
node_modules文件夹下面放的都是第三方包
git init:将该项目变成一个git可以管理的仓库
建一个README.md说明文档
建一个.gitignore文件:里面存放一些我们不需要git管理的一些文件
建一个public文件夹存放静态资源:子目录有js、css、img
安装express、mongoose:npm i express mongoose
安装jquery、bootstrap: npm i jquery bootstrap@4.6.0
如果使用bootstrap的样式却没效果,可以在安装的时候指定一个低版本的(前提是你的bootstrap.css没引错)

安装art-template: npm i art-template express-art-template
安装body-parse: npm i body-parse
安装express-session这个中间件(因为express框架不支持Session 和 Cookie): npm i express-session
安装blueimp-md5(加密算法): npm i blueimp-md5
建议全局安装一下nodemon: npm i nodemon -g
根目录下建一个app.js文件
app.js

const express = require('express')
const path = require('path')

const app = express()

app.use('/public/', express.static(path.join(__dirname, './public/')))
app.use('/node_modules/', express.static(path.join(__dirname, './node_modules/')))

app.get('/', function (req, res) {
	res.send('hello')
})

app.listen(3000, function () {
	console.log('running...')
})

下面简单测试一下:node app.js

拓展 
__dirname
:可以用来获取当前文件模块所属目录的绝对路径
__filename:可以用来获取当前文件的绝对路径
在文件路径操作中,使用相对路径是不可靠的,因为在Node中文件操作的 ./ 被设计为相对于执行node命令所处的路径
为了解决这个问题,只需要把相对路径变成绝对路径,例如 path.join(__dirname, 相对文件路径)

2.art-template的自模板和模板继承

在上面的环境基础上,我们来简单演示一下art-template的子模板和模板继承

views/header.html

<h1>公共的头部</h1>

views/footer.html

<h1>公共的底部</h1>

views/layout.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title></title>
	<link rel="stylesheet" type="text/css" href="/node_modules/bootstrap/dist/css/bootstrap.css">
	{{ block 'style' }}{{ /block }}
</head>
<body>
	{{ include './header.html' }}
	<!-- 留一个坑 -->
	{{ block 'content' }}
	<h1>默认内容</h1>
	{{ /block }}
	{{ include './footer.html' }}
	<script src="/node_modules/jquery/dist/jquery.js"></script>
	<script src="/node_modules/bootstrap/dist/js/bootstrap.js"></script>
	{{ block 'script' }}{{ /block }}
</body>
</html>

views/index.html

{{ extend './layout.html' }}

{{ block 'style' }}
<style>
	body {
		background-color: skyblue;
	}
</style>
{{ /block }}

{{ block 'content' }}
<div>
	<h1>index页</h1>
</div>
{{ /block }}

3. 路由设计

路由方法get参数post参数是否需要登录备注
/GET渲染首页
/registerGET渲染注册页面
/registerPOSTnickname、password、email处理注册请求
/loginGET渲染登录页面
/loginPOSTemail、password处理登陆请求
/logoutGET处理退出请求

4.设计多个数据模型

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漂流の少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值