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. 编译make的出错提示解决方案

    编译出错笔记:start.s:20: Error: no such instruction: `ldr r0,=WTCON' 错误:没有这样的指令 解决:编译文件后缀名必须为大写S,改为start.S ...

  2. python __name__ 变量的含义

    python __name__ 变量的含义 if __name__ == '__main__': tf.app.run() 当python读入程序时,会初始化一些系统变量.如果当前程序是主程序,__n ...

  3. 获取url中的参数(微信开发)

    alert(location.search.split('?')[1].split('&')[0].split('=')[1]); 说明:从当前URL的?号开始的字符串,以?号分割, 分割后索 ...

  4. 分而治之(Work Breakdown Structure, WBS)

    不知道大家有没有和我一样的情况,就是想写一篇博客,不知道从何写起,如何组织语言,如何安排这篇博客的要交待的事情的前因后果:如果在写作过程中被打断,又不知道如何重新拾起键盘,从哪里写起."就如 ...

  5. 201521123039《Java程序设计》 第二周学习总结

    1.本周学习总结 答:上课老师介绍了Java基本的数据类型,需要注意的地方有:**java的整型数都为带符号数**,**byte类型范围(-127,128)太小,所以我们一般不使用byte型,byte ...

  6. 201521123065《Java程序设计》第2周学习总结

    1.本周学习总结 字符串创建后是不可变的,可以使用加号进行字符串之间的拼接. 使用for循环对字符串进行修正会不断产生新的字符串,应使用StringBuilder. 字符串内容的比较要用equal. ...

  7. 预防黑客入侵 防黑必学的cmd命令vs网络安全

    这些命令又可*********三类:网络检测(如ping).网络连接(如telnet)和网络配置(如netsh).前面两种相对简单,本文只介绍两个网络配置工具.自带的关于网络的命令行工具很多,比如大家 ...

  8. 201521123030 《Java程序设计》 第11周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1.互斥访问与同步访问 完成题集4-4(互斥访问)与4-5(同步访问) ...

  9. Markdown格式范例

    一个例子: 例子开始 1. 本章学习总结 今天主要学习了三个知识点 封装 继承 多态 2. 书面作业 Q1. java HelloWorld命令中,HelloWorld这个参数是什么含义? 今天学了一 ...

  10. Java:Object类的equals()方法 如何编写一个完美的equals()方法

    一  代码实例: package freewill.objectequals;  /** * @author freewill * @see Core Java page161 * @desc get ...