前后端不分离项目思路(页面布局注意点暂时不包含数据库·上篇)

1.项目用了node中express的项目生成器,需要使用node中npm的包管理器下载express-generator 工具,下完之后用express projectName命令搭建,express后面是创建的项目名,等等操作,我还下了一个nodemon的工具自动刷新就不用每次开关服务(具体操作想知道的可以问我,这里我就不写了)

2页面从bootstrap用cv大法找模板,更改了路径,删减和增添了一些配置,公共部分我分别放在了一个单独的文件,使用include插入
格式:
<%- include("./aside.ejs")%>
<%=%> -和=的区别就是=放的是数值三目表达式也是用=,-是可以解析里面代码的

3.配置路由,导入express模块,express有个Router的方法建立路由,app.js文件里面注册路由,用app.use命令设置的:
app.use(’/pro’, proRouter);
第一个参数是设置的路由路径,第二个参数是专门设置的相应路由文件】 。
这个文件要在Router方法前引入:
var proRouter = require(’./routes/pro’);),
路由接受请求收到的两个参数:
router.get(’/’, function(req, res, next) {
res.render(“pro”,{
index:3
})
});
第一个参数是设置的路由路径,第二个是个函数,函数里面放了三个参数,第一个是req 请求头,第二个res 响应头,第三个next,这里的next是防止把下面的路由请求拦截掉 。然后后面采取,res.render()方法渲染模板,这个方法也有两个参数,第一个参数是静态页的路径,第二个参数是个对象,里面放入静态页需要的用到的变量,配置完记得把模块暴露出来,路由配置完记得在导航用a标签关联上去,完成跳转
这里再补充一行代码:
res.redirect("/pro")这个是路由的重定向,是在添加数据完成后,返回并展示最新的数据时使用找到需要返回路由的路径就可以,下面放代码再详说一下

代码我就不全放了:
先放个node服务器代码

var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');

var indexRouter = require('./routes/index');
var proRouter = require('./routes/pro');
var lbtRouter = require('./routes/lbt');
var informRouter = require('./routes/inform');
var shoppingRouter = require('./routes/shopping');
var userRouter = require('./routes/user');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', indexRouter);
app.use('/pro', proRouter);
app.use('/lbt', lbtRouter);
app.use('/inform', informRouter);
app.use('/shopping', shoppingRouter);
app.use('/user', userRouter);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  next(createError(404));
});

// error handler
app.use(function(err, req, res, next) {
  // set locals, only providing error in development
  res.locals.message = err.message;
  res.locals.error = req.app.get('env') === 'development' ? err : {};

  // render the error page
  res.status(err.status || 500);
  res.render('error');
});

module.exports = app;

结合上面应该好理解许多

放静态文件pro.ejs格式

<!DOCTYPE html>
<!--
This is a starter template page. Use this page to start your new project from
scratch. This page gets rid of all links and provides the needed markup only.
-->
<html>

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>AdminLTE 2 | Starter</title>
  <!-- Tell the browser to be responsive to screen width -->
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
  <link rel="stylesheet" href="/stylesheets/bootstrap.min.css">
  <!-- Font Awesome -->
  <link rel="stylesheet" href="/stylesheets/font-awesome/css/font-awesome.min.css">
  <!-- Ionicons -->
  <link rel="stylesheet" href="/stylesheets/ionicons.min.css">
  <!-- Theme style -->
  <link rel="stylesheet" href="/stylesheets/AdminLTE.min.css">
  <!-- AdminLTE Skins. We have chosen the skin-blue for this starter
        page. However, you can choose any other skin. Make sure you
        apply the skin class to the body tag so the changes take effect. -->
  <link rel="stylesheet" href="/stylesheets/skin-blue.min.css">

  <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
  <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  <![endif]-->
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值