开发者学堂课程【Node.js 入门与实战:Res.sendFile 和 res.render】学习笔记,与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/588/detail/8323
Res.sendFile和res.render
一、加载的 html 页面
代码:
// 1.创建一个 router 对象(router 对象既是一个对象,也是一个函数>var express = require( ' express' );
//加教业务模块
var handler = require( ' ./handler.js ');var router = express.Router(;
//2.通过 router 对象设置((挂载)路由 router.get('/', handler.index);
router.get( ' /index ' , handler.index);
router.get('/ submit', function(req, res){//body . . .
});
router.get("/item', function(redq,res){// body. .
I
);
router.get( ' /add' , function(req, res) {l / body . . .
});
router.post( ' / add', function(req, res){// body . ..
});
// 3.返回 router 对象moduLe.exports = router;
在到 header.js 里面加入,以下代码:
//处理新闻列表 index
module.exports .index = function (req,res)i
res.sendFile(path.join(__dirname, 'views ' , 'index.h
t
ml ' ));
在到终端里面去测试,显示结果:
当访问 css 的时候会报错,图片如下:
除了router.js 以外,还要添加一个。
在 router.js 里面添加,下列代码:
//实现对 resources 文件夹下的内容进行静态资源托管router.use("/resources
“
, express.stati
(path
.join(__dirname,’resources’)
))
在添加path:
var path=require( 'path
‘
)
;加上路由的时候,再到终端里面去运行。(结果如下:)
加载的 html 页面,没有css文件和image图片文件
案例:
module.exports.index = function (req, res) {
res.send
('这个是 handler.index 方法中的代码');
返回一些文字信息: res.send('这个是 handler.index 方法中的代码'); ,尝试返回 html 页面,
案例:使用一下案例尝试返回 html 页面文本信息
加载的 html 页面,有 css 文件和 image 图片文件
用 express 模拟 Apache 实现静态资源托管服务express框架之通过express 模拟 Apache 实现静态资源托管服务 ,我们修改下路由模块 router.js 里面的代码,实现对 resources 文件下的内容进行静态资源托。
sendFile()方法虽然可以读取对应的文件并返回,但是我们不使用 sendFile()方法。原因是:将来我们要对 index.html 中的模板代码进行执行并替换替换。
用的是:
在 response 中的 render 方法,代码如下:
res . render(path. join(__ dirname, ' views',' index.html
' ));
网页结果:
报错发现找不到,html 这个东西,因为你没有配置说所以没有找到这个。默认 render 方法是不能使用的,需要为 express 配置一个模板引擎,然后才可以使用。
Express 支持的模板引擎有(图片如下:):