nodejs 图解express+supervisor+ejs的用法(推荐)
发布时间 - 2026-01-11 03:09:33 点击率:次通过node js自带的http模块搭建了一个简易的服务器,实际在开发中,一般用的是express框架,本文我们就来讲讲项目开发中必备不可少的几样东西:

•服务器( express )
•路由( express.Router )
•模板引擎( ejs )
•当然再加上数据库,就可以完成一个mvc的web应用了,数据库的用法,后期我会写一个项目
一、首先,新建一个项目文件夹( ghostwu ),在命令行下切换到该目录,用npm init --yes 初始化package.json文件
安装express: npm install express --save
二、新建index.js文件,输入以下代码
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.send( 'welcome to study express -by ghostwu' );
}).listen( 8080 );
第一行,加载express模块
第二行,开启web服务器
第三行,web服务器监听8080端口, 当通过浏览器输入( http://localhost:8080 ) 就会看到这段信息:welcome to study express -by ghostwu
三、如果你写过node服务器,你就会发现一个问题,每次修改之后,都要重启服务器,一般来说,我们修改文件之后,保存,刷新网页就能看到修改,需要达到这样的效果,我们就要安装supervisor,这个相当于webpack的热加载,我们采用全局安装: npm install -g supervisor,安装完成之后,我们以后就这样运行服务器文件了: supervisor --harmony index
之后修改index.js文件,只要保存,刷新网页就能马上看到修改之后的结果了
四、增加路由处理,修改index.js文件,把代码修改成如下:
var express = require('express');
var app = express();
app.get('/', function(req, res) {
res.send('hello, express');
});
app.get('/user/:name', function(req, res) {
res.send('hello, ' + req.params.name);
});
app.get('/user/:name/age/:age', function(req, res) {
res.send('info: user:' + req.params.name + ', age:' + req.params.age );
});
app.listen( 8080 );
http://localhost:8080/ ----> 显示hello, express
http://localhost:8080/user/ghostwu ----->显示hello, ghostwu
http://localhost:8080/user/ghostwu/age/22 ---->显示info: user:ghostwu, age:22
:name占位符: 用来接收user后面的值 :age占位符用来接收age后面的值, req.params后面获取的键名就是这个占位符
如果你学过php,那么就相当于下面这种get接收参数方式
xxx.php?user=ghostwu&age=22 -----> $_REQUEST['user'] $_REQUEST['age']
五、一般在项目中,路由是需要单独分离出来的,便于维护和扩展
新建routers,然后在下面创建index.js和info.js文件
index.js代码:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.send('hello, express');
});
module.exports = router;
info.js代码:
var express = require('express');
var router = express.Router();
router.get('/:name', function(req, res) {
res.send('hello, ' + req.params.name);
});
router.get('/:name/age/:age2', function(req, res) {
res.send('info: user:' + req.params.name + ', age:' + req.params.age2 );
});
module.exports = router;
ghostwu这个目录下面的index.js文件代码为:
var express = require('express');
var app = express();
var indexRouter = require('./routers/index');
var infoRouter = require('./routers/info');
app.use('/', indexRouter);
app.use('/user', infoRouter);
app.listen(8080);
通过以上的代码,就完成了路由的分离,把 / 和 /user分别放在index.js,info.js文件,然后导出router对象,通过app.use找到对应的路由
六、ejs模板的应用
安装: npm install ejs --save
index.js文件:
var path = require('path');
var express = require('express');
var app = express();
var indexRouter = require('./routers/index');
var infoRouter = require('./routers/info');
//设置模板目录: views
app.set('views', path.join(__dirname, 'views'));
//设置模板引擎: ejs
app.set('view engine', 'ejs');
app.use('/', indexRouter);
app.use('/user', infoRouter);
app.listen(8080);
info.js文件
var express = require('express');
var router = express.Router();
router.get('/:name', function(req, res) {
res.render( 'info', {
name : 'ghostwu',
age : 22,
sex : 'man'
});
});
module.exports = router;
第5行res.render渲染模板文件 info.ejs, 第二个参数就是数据
info.ejs文件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> 用户信息: <hr> <ul> <li>用户名: <%=name%></li> <li>年龄: <%=age%></li> <li>性别: <%=sex%></li> </ul> </body> </html>
<%=变量名%>读出数据
<% code %>:运行 JavaScript 代码,不输出
<%= code %>: 转义html标签
<%- code %>:不转义html标签
其他ejs用法,结合手册查下
以上这篇nodejs 图解express+supervisor+ejs的用法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# nodejs
# express
# ejs
# nodejs中Express与Koa2对比分析
# 使用nodejs+express实现简单的文件上传功能
# nodejs使用express获取get和post传值及session验证的方法
# Nodejs+express+ejs简单使用实例代码
# 详解nodejs中express搭建权限管理系统
# nodejs对express中next函数的一些理解
# 基于nodejs+express4.X实现文件下载的实例代码
# 详解nodejs的express如何自动生成项目框架
# nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
# Express+Nodejs 下的登录拦截实现代码
# nodejs+express搭建多人聊天室步骤
# 如果你
# 就能
# 给大家
# 的是
# 加载
# 就会
# 放在
# 我会
# 都要
# 这段
# 再加上
# 用了
# 希望能
# 第二个
# 一个问题
# 这篇
# 就来
# 自带
# 重启
# 你就会
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel Session怎么存储_Laravel Session驱动配置详解
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
如何在Windows服务器上快速搭建网站?
PHP 500报错的快速解决方法
详解阿里云nginx服务器多站点的配置
Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
iOS UIView常见属性方法小结
深圳网站制作平台,深圳市做网站好的公司有哪些?
如何在阿里云虚拟服务器快速搭建网站?
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
Python数据仓库与ETL构建实战_Airflow调度流程详解
在线制作视频网站免费,都有哪些好的动漫网站?
*服务器网站为何频现安全漏洞?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
Laravel如何实现API版本控制_Laravel版本化API设计方案
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
Laravel如何发送系统通知?(Notification渠道示例)
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
iOS正则表达式验证手机号、邮箱、身份证号等
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
高端云建站费用究竟需要多少预算?
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】
如何快速查询网站的真实建站时间?
Laravel如何实现文件上传和存储?(本地与S3配置)
Laravel如何创建自定义Facades?(详细步骤)
Laravel怎么为数据库表字段添加索引以优化查询
三星、SK海力士获美批准:可向中国出口芯片制造设备
Laravel Docker环境搭建教程_Laravel Sail使用指南
如何解决hover在ie6中的兼容性问题
利用python获取某年中每个月的第一天和最后一天
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法
如何在宝塔面板中修改默认建站目录?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
如何正确下载安装西数主机建站助手?
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
免费网站制作appp,免费制作app哪个平台好?
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
如何在万网自助建站平台快速创建网站?
Laravel如何处理和验证JSON类型的数据库字段
怎么用AI帮你设计一套个性化的手机App图标?
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
打造顶配客厅影院,这份100寸电视推荐名单请查收

