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寸电视推荐名单请查收