手动创建express服务器框架(不用express脚手架)

概述

express+nodejs+模板引擎,手动搭建后台管理框架,主要有以下几个大概步骤:

安装express,配置主文件app.js

引入静态资源、配置模板引擎

设置路由、写页面

一、安装express,开始

1、自行创建一个项目文件夹(pro文件夹),在文件夹中打开终端

运行 下面代码初始化 ,会生成package.json

npm init -y

然后全局安装(安装过全局的不用再安装,没有装过的第一次要装,本人已装过,所以没有这句)  

     npm i express -g

安装依赖    

npm i express -D

安装示例

2、在文件夹中创建app.js,在其中做以下配置:

const express = require('express');    //引入express模块

const app = express();

app.get("/",(req,res)=>{ res.send("你正在访问已创建好的服务器")})

app.listen(3001, () => { console.log('the server is running on port 3001'); }) 

//服务器端口号为3001,也可以是其它的,如3000、8000等

以上代码完成保持,然后在命令窗口运行app.js就开启了一个简单服务器!

在浏览器中打开    localhost:3001    即可访问自己搭好的服务器

app文件
命令行运行
浏览器访问

二、引入静态资源、模板引擎配置

1、在pro中创建文件夹public文件夹和static文件夹

在app.js文件中写入

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

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

现在在static和public文件夹中的html文件或静态文件可以在根目录下正常访问,如public中有home.html文件,可直接在浏览器中打开localhost:3001/home.html访问

2、安装配置模板引擎ejs

在终端  ctrl+c  结束刚才开启的服务器,然后安装 ejs

npm i ejs

安装ejs

在app.js中配置模板引擎、模板文件路径,并在pro文件夹中创建views文件夹

app.set("view engine","html");

app.set("views","./views");//设置模板文件路径

app.engine("html",ejs.renderFile);

【注】:此处设置模板引擎为html文件,express脚手架中是ejs文件

3、因为每次修改app.js都要再重启服务器,所以可以安装,nodemon实时监听运行app.js文件,当修改app.js内容后就不需要一直在命令行中重新运行app.js了

打开命令窗口,安装nodemon

npm install nodemon -g


app.js

三、设置路由和页面

现在我们假如要展示一个商品列表页products、新闻通知页面note、用户中心页面users

以一个商品列表页为例,后台管理需要有展示商品列表页面、编辑商品页面、商品详情页、新增商品页面

1、设置路由

创建routers文件夹,在里面写路由文件:products.js文件

const express = require('express');

const router = express.Router();

router.get('/', (req, res) =>{     // 通过render方法渲染一个视图文件,此处使用ejs模板引擎     res.render('/products', { cont:"商品列表页"})

})

router.get('/edit', (req, res) =>{     // 编辑商品页面   

    res.render('/products-edit', { cont:"编辑商品页"})

})

module.exports = router;

【注】:render是渲染页面,第一个参数是要渲染的页面,第二个参数是需要传到页面的参数,可在模板引擎的方法接收生成结构

在app.js中配置该路由:

app.use('/products', require('./routers/products'));    

配置好后,访问products文件就直接可以localhost:3001/products访问了

2、编写页面

创建products.html页面和products-edit.html页面,分别在body中写入

<div>该页面是:<%=  cont %> </div>

【注】:<%=   %>中接受渲染页面时参来的变量进行展示,<%  %>中可写入js逻辑语句,比如列表页渲染时多传入一个参数,生成商品

res.render('/products', {

      cont:"商品列表页" ,

      list:[ {name:"商品1",price:500} , {name:"商品2",price:300} ] 

})

在列表页products.html中写入

<table>

    <% list.forEach(function(item) { %>

        <tr> <td><%=  item.name  %></td> <td><%=  item.price %></td></tr>

    <%  } %>

</table>

保存后,在命令窗口运行app.js

nodemon app.js

然后在浏览器访问localhost:3001/products即访问到了商品列表页

访问localhost:3001/products/edit 即访问到了编辑商品页

于是,基本框架就实现了,同理可以设置用户中心、新闻页面的路由,页面样式布局可以参考网上模板修改一下内容即可

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

推荐阅读更多精彩内容