1 package.json
项目文件夹根目录创建这个文件
//要依赖的模块
"dependencies": { //dependency 依赖的复数形式
"express": "latest"
}
创建好后 npm install 安装(出现node_modules) 2 nodeJS 原生hello world
app.js文件代码
var http = require('http'); //依赖http块
server = http.createServer(function(req, res){ //request 请求 response 返回
res.writeHeader(200, { //200请求成功 Content-Type请求类型
'Content-Type': 'text/plain',
});
res.end('<p>hello world --by nodeJS</p>'); //end()表示请求结束
}).listen(300); //服务器开启在300接口
console.log('Server running at http://127.0.0.1:300');
3 exprss 简单使用
3.1 express简单使用不用其他文件的最简单hello world
app.js文件代码
        var http = require('http'),
express = require('express'),
app = express();
//express 简单使用(只用一个js文件)
app.get('/', function(req, res){
res.send('这是最简单的nodejs express使用');
});
//创建服务器并监听接口
http.createServer(app).listen(500);
   3.2 express 简单使用路由
创建 router/index.js; app.js 文件代码;
var http = require('http'),
express = require('express'),
app = express(); //express 使用router
app.use('/', require('./router/index.js'));
//创建服务器并监听接口
http.createServer(app).listen(500);
router/index.js代码
var express = require('express'),
router = express.Router();
//简单使用
router.get('/', function(req, res){
res.send('nodejs express 简单使用router');
});
//输出router
module.exports = router; 3.3 express router/index.js 使用正则匹配地址
router.get('/a+b+', function(req, res){
res.send('nodejs express 简单使用router');
});
此时 http://127.0.0.1:500/访问不到
符合正则表达式的地址: http://127.0.0.1:500/ab 或 aaabb 或abbb 但acb不行 abbc也不行 4 nodeJs常用的变量 调试方法只有console.log();
console.log(__filename); //输出文件名
console.log(__dirname); //输出当前文件所在目录名 被执行的js 文件的地址
console.log(process.cwd()); //当前执行node命令时候的文件夹地址
./当前目录
../父目录
/根目录 5 express模板的使用 使用的是ejs模板--和html只是后缀名不同
app.js文件代码
var http = require('http'),
express = require('express'),
app = express();
//设置视图模板引擎目录(当前视图模板的目录)
app.set('views', __dirname +'/views');
//设置视图模板引擎使用的模板的类型
app.set('view engin', 'ejs'); //express 使用router
app.use('/', require('./router/index.js')); //创建服务器并监听接口
http.createServer(app).listen(500);
router/index.js文件代码
var express = require('express'),
router = express.Router();
router.get('/', function(req, res){
//设置使用的模板使用的引擎是什么
res.render('index.ejs'); //可以省.ejs 'index'代表响应的是index.ejs模板引擎 render[ˈrendə(r)]使成为 表达 给予
});
//输出router
module.exports = router; //exports 输出
views/index.ejs文件代码
<% include header.ejs %> //引用用同级header.ejs 5.1 router/index.js 传给模板参数的不同
router/index.js文件代码
res.render('index.ejs', {'name': 'jeson'});
views/index.ejs文件代码
<%= name %> 5.2 当传递的不需要转义时候
router/index.js文件代码
res.render('index.ejs', {'name': '<h1>wulv</h1>'}); //传递标签时
views/index.ejs文件代码
<%= name %>
<%- name %> //正常输出wulv在h1里面 没有转义的
5.3 <% %> 用来写js代码
views/index.ejs 循环输出4个p
<% for(var i=0;i<4;i++){ %>
<p>循环输出</p>
<% } %>
5.4 引入其他模板例如头部 底部分离 <% include xxx.ejs %>
public/header.ejs 创建通用头部
index.ejs文件代码
<% include header.ejs %>
5.4 router传递一个json对象时
router/index.js文件代码
var express = require('express'),
router = express.Router();
router.get('/', function(req, res){
var obj = {
'name': 'Jeson',
'age': 25,
'direction': 'web'
};
res.render('index.ejs', {person: obj});
});
//输出router
module.exports = router;
views/index.ejs文件代码
<% for(var key in person){ %>
<%= person[key] %>
<% } %> 6 静态资源(css js img)
创建静态资源目录 public
img public/img
css public/css
js public/js
6.1 使用
app.js文件代码
var http = require('http'),
express = require('express'),
app = express();
//设置视图模板引擎目录
app.set('views', __dirname +'/views');
//设置模板引擎的类型
app.set('view engine', 'ejs'); //设置静态资源目录 js img css
app.use(express.static(__dirname +'/public')); //express托管静态文件,设置静态文件目录
app.use('/', express.static(__dirname +'/public')); //设置静态文件访问的地址(可指定一个虚拟目录)
//'/abc' 添加后 http://127.0.0.1:300/abc 才能访问首页 //express 使用router
app.use('/', require('./router/index.js')); //创建服务器并监听接口
http.createServer(app).listen(500);
router/index.js文件代码
var express = require('express'),
router = express.Router();
router.get('/', function(req, res){
//设置使用的模板使用的引擎是什么
//res.render('index.ejs'); //可以省.ejs 'index'代表响应的是index.ejs模板引擎
//res.render('index.ejs', {name: '<h1>wulv</h1>'}); //传递标签时
var obj = {
'name': 'Jeson',
'age': 25,
'direction': 'web'
};
res.render('index.ejs', {person: obj});
});
//输出router
module.exports = router;
public/index.ejs文件代码
<link rel="stylesheet" href="css/common.css">
<link rel="stylesheet" href="js/jquery.js">
<img src="/img/hzw1.jpg" alt=""> 6.2 404页面
在public目录下建立 404.html
访问 http://127.0.0.1:500/404.html

ch1-使用路由-静态资源-404页面-ejs模板的更多相关文章

  1. Vue 实现动态路由及登录&404页面跳转控制&页面刷新空白解决方案

    Vue实现动态路由及登录&404页面跳转控制&页面刷新空白解决方案   by:授客 QQ:1033553122   开发环境   Win 10   Vue 2.9.6   node-v ...

  2. spring mvc 静态资源 404问题

    spring mvc 静态资源 404问题 在web.xml配置servlet-mapping的时候,如果url-pattern设置为"/" (如下),很多人都会遇到导入js,cs ...

  3. KO ----- 静态资源404问题

    --------------------siwuxie095                                 KO ----- 静态资源 404 问题         在 Spring ...

  4. 解决 配置springmvc拦截所有请求后请求静态资源404的问题

    <servlet-mapping> <servlet-name>spring-servlet</servlet-name> <url-pattern>/ ...

  5. spring mvc 访问静态资源404

    访问比如css js出现404提示 在spring的配置文件中加上如下代码即可 <!-- 静态资源404 --> <mvc:resources location="/res ...

  6. [bug] IDEA springboot项目 访问静态资源 html页面 报404

    原因 复制的静态资源目录没有编译 解决 检查target目录中,是否有static目录,若没有,重新右键项目install即可 若还不能解决,尝试浏览器缓存和IDEA编译设置,详见参考链接 参考 ht ...

  7. idea中springboot静态资源及页面跳转问题

    1,静态资源放在resources/static下,html页面放在resources/templates下 2,在html中引入静态资源时,不用带static(对于路径来说是透明的) 3, 配置ht ...

  8. 【问题管理】-- Tomcat8部署项目加载静态资源html页面编码错误

    1.问题背景及解决方式 最近在回顾Tomcat部署Web项目,自己简单地从Tomcat的下载安装及配置server.xml文件入手,学习Tomcat的项目部署,在自己使用IDEA创建了一个简单地web ...

  9. spring boot 2.x拦截器导致静态资源404终极解决办法

    首先添加application文件static路径,我的是yml文件 spring: mvc: static-path-pattern: /static/**然后注册拦截器类如下方法; @Overri ...

随机推荐

  1. Mac上安装openCV(Java版本)

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt410 Install and use OpenCV 3.0 on Mac O ...

  2. grunt之connect、watch

    先说下这两个插件配合的用处,简单的说,它们可以拯救你的F5.connect用于建立一个静态服务器,watch监听文件的修改并自动实时刷新浏览器的页面. 还是options走起. connect(V0. ...

  3. java四则运算

    题目描述: 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除 ...

  4. spring在扫描包中的注解类时出现Failed to read candidate component错误

    出现:org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate componen ...

  5. 201521123002《Java程序设计》第7周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 先查看源代码 con ...

  6. 201521123052《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 1.2 可选:使用常规方法总结其他上课内容. 学习了更多markdown的知识 参考资料: 百度脑图 XMind 2. 书面作 ...

  7. 201521123054 《Java程序设计》第5周学习总结

    1. 本周学习总结 2. 书面作业 作业参考文件下载 代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误.并分析输出 ...

  8. 201521123112《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点 1.2 使用常规方法总结其他上课内容 关于多态,多态性就是相同的形态,不同的定义.在简单点说的话就是不同类的对象对同一个消息作出的相应 ...

  9. 201521123077 《Java程序设计》第2周学习总结

    1. 本周学习总结 动态数组 标识控制符的意义 ArrayList ,BigDecimal,BigInteger 等类的使用 组合,继承,多态等概念的了解 2. 书面作业 Q1.使用Eclipse关联 ...

  10. 201521123069 《Java程序设计》 第9周学习总结

    1. 本章学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. (1)使用try...catch语句捕获异常(try块后可跟一个或多个catch块,注意子类异常要放在父类异常前面, ...