node.js
概念问题:
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
npm是一个node的包管理工具 ,也是一个网站 ,还是一条命令。Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。
1.用node编写http服务器
方法综述:
* 1、引入 http 模块
* 2、创建服务器
var http=require("http");
接下来我们使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。
/*
req(request):返回url信息
res(response):浏览器返回相应信息
*/
http.createServer(function(req,res){
/*
* 如果状态是200,文件类型是html,字符集是utf-8
* */
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
res.write("http://localhost:8888");
res.end();
}).listen(8888);
a.杰哥代码示范:
var http=require("http");
http.createServer(function(req,res){
res.writeHead(200,{"Content-Type":"text/html;charset=utf-8"});
res.write("首页");
res.end();
}).listen(8888);
b.春娥老师代码示范
//引入核心模块
const http = require("http");
//创建一个服务器
const server = http.createServer((req,res)=>{
//req参数代表客户端数据信息
//res参数代表服务器数据信息
res.writeHead(200,{"Content-Type":"text/html;charset=UTF8"});//指定中文编码
/*res.write("hello node");//向客户端发送数据
res.write("今天天气很热");
res.write("明天天气也很热");
res.end();//表示服务器相应已经结束*/
res.end("今天天气有点热
明天xxx");
})
server.listen(8000);
2.Express框架的应用
express :是一个简单而灵活的node.js框架
a.express的安装
代码指令:npm install --save express
如果网慢有时候也可以使用cnpm淘宝镜像;但尽量使用npm;
!!附:npm install //安装依赖
发送文件的时候,应该把node_modules文件夹删除 接收以后可用npm install重新获取安装
3.Nodejs 自启动工具 supervisor
优点:每次更新程序,自动更新、不必重启服务器、
a.安装代码指令:npm install -g supervisor (全局安装,安装一次永久可用)
b.使用时 用supervisor代替node命令启动应用程序 即可生效
(1)杰哥代码示范
var express=require("express");
var app=new express();
//路由
app.get("/",function(req,res){
//res.send("首页");
res.render("index",{name:"张三2"});
});
//新闻页面
app.get("/news",function(req,res){
//res.send("新闻页面22");
var list=[
{id:1,title:"新闻ejs1",isNews:true},
{id:2,title:"新闻ejs2",isNews:false},
{id:3,title:"新闻ejs3",isNews:false}
];
res.render("news",{list:list});
});
console.log("http://localhost:8888");
app.listen(8888,"localhost");
4.ejs的使用和静态资源托管
a. 安装指令:npm install --save ejs
b. app.set("view engine","ejs"); //设置默认模板引擎 (默认方法,通常情况下推荐用此方法)
c.创建文件夹views 注意:此处文件夹名必须为views 不可更改
然后在文件夹下面创建一个html文件 重命名为:“index.ejs” 格式
如需要更改名字 可使用代码:
如:将名字改为pages 使用代码:app.set("views","pages")
console.log(_diename) 找到view的绝对路径
app.set("views",__dirname+"/pages"); //更换模板目录
附:不使用ejs后缀,更改为html的方法: (可借助此方法访问html文档,传参方式此处为了解,后面将会学习 传参方法如:在html中<%=name%> )
var bodyParser=require("body-parser");
var app=new express();
app.engine("html",ejs._express);
app.set("view engine","html");
5.Express中间件
功能:1.执行任何代码
2.修改请求和响应对象
3.终结请求-响应循环
4.调用堆栈中的下一个中间件
路由中间件:
app.use(function(req,res,next){
next();
}) 终止执行请求,一般放在路由的前面
路由中间件 杰哥经典案例:
app.use(function(req,res,next){
if(localstorage['islogin']){
next();
}else{
}
}) //如果localstorage存在,继续执行后面代码 否则,终止执行
6.内置中间件 配置静态资源
app.use("/", express.static("static"));
//获取static文件夹下的内容
7.错误处理中间件
app.use(function(req,res,next){
res.status(404).render('404',{});
});
8.第三方中间件
npm install body-parser-save //安装中间件
var bodyParser = require('body-parser') //设置中间件
9.get post请求 (8. 9 处内容暂未掌握,实例及其内容 下次分析)
* GET 请求的参数在 URL 中,在 Express 中,可以直接使用 req.query 对象。
* POST 请求在 express 中不能直接获得,可以使用 body-parser 模块。使用后,将可以用 req.body 得到参数。
* All 可以请求get和post
10.ejs模板引擎
常用标签:
<%%>:流程控制标签
<%=%> :输出标签(原文输出HTML标签)
<%-%> :输出标签(HTML会被浏览器解析)
示例:
<%=name%>
<%- include ../public/left%>
<ul>
<% for(var i = 0 ; i < news.length ; i++){ %>
<li><%= news[i] %></li>
<% } %>
</ul>
<%if type==1 %>
vip会员
<%else if type==0%>
普通会员
<%/if%>
- node.js入门学习笔记整理
(1)node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node与javaScript的区别在于,javaScript的顶层对象是window,而no ...
- Node.js初学
Node.js 初学~ 其技术上最大的卖点是非阻塞的I/O和基于事件的异步处理机制. 后端没有什么深入研究,一直对其不是很了解. 透过一个例子看 非阻塞 与 通常的 阻塞 var text = rea ...
- node.js 初学(二)—— 搭建注册/登录服务器
node.js 初学(二)—— 搭建注册/登录服务器 理论上来说,代码实现在理论和实际上是一样的.但实际上来说,他们不是 做一个最简单的用户注册登录功能 1.接口定义: 注册:/user?act=re ...
- node.js 初学(一)—— http fs 服务器/文件/post get
node.js 初学 —— http fs 服务器/文件/post get 这个世界,从来不会给失败者颁奖! 了解 node.js (开源) node.js 是用来做后台开发的,但是现在大部分前端人员 ...
- node.js学习的资源整理
node中文社区 Node.js专业中文社区:https://cnodejs.org/ node文档 node.js 中文api :http://nodeapi.ucdok.com/ node.js入 ...
- Node.js的知识点框架整理
背景:因为appium是基于Node.js的,所以想看一下Node.js.但是发现很多资料的顺序看起来有点颠倒.然后就一面看资料一面整理了一下大概的知识点框架,希望对自己对别人有用. 本文不包含nod ...
- Node.js API学习笔记(一)
此文章已经发表于本人博客. Terminal(终端) 说起这个使用过linux系统的兄台一般都会知道的,本人理解:类似Putty这些ssh工具通过 软件来实现远程控制主机,对于我们使用者来说,它会显示 ...
- 《深入浅出Node.js》学习笔记(一)
看了朴灵前辈的node.js系列文章,很开阔视野,虽然能力有限还是有很多不懂,但是还是希望能写下笔记,初步对node.js有点了解. 一.概念 Node.js不是JS应用.而是JS运行平台 Node. ...
- Node.JS学习——学习笔记
Node.JS--学习笔记 2020年02月23日11:52:01 我打算自学NodeJS-通过阅读NodeJS官网来完成. https://nodejs.org/dist/latest-v13.x/ ...
随机推荐
- Docker笔记(六):容器管理
原文地址:http://blog.jboost.cn/2019/07/21/docker-6.html 容器是Docker中的另一核心概念,在Docker中,应用的运行都是在容器内进行的,容器则基于镜 ...
- 个人永久性免费-Excel催化剂功能第63波-当前选择区域的上下左右平移功能及跳转窗口左上角
日常的Excel使用过程中,大部分的时间是在做选择单元格的操作,一般来说都是对指定单元格区域的内容进行一些数据处理.转换生成新数据的过程,那选择指定单元格的步骤,若能够尽最大程度地效率上得到加速,产出 ...
- MySql的数据库优化到底优化啥了都(3)
嘟嘟在上两个文章里面简单粗糙的讲了讲关于MySql存储引擎的一些特性以及选择.个人感觉如果面试官给我机会的话,至少能说个10分钟了吧.只可惜有时候生活就是这样:骨感的皮包骨头了还在那美呢.牢骚两句,北 ...
- AQS初体验
AQS初体验 AQS是AbstractQueuedSynchronizer的简称.AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架.所谓框架,AQS使用了模板方法的设计模式,为我们 ...
- 利用TCP协议,实现基于Socket的小聊天程序(初级版)
TCP TCP (Transmission Control Protocol)属于传输层协议.其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送.可靠性.有效流控.全双工操作和多路复用 ...
- 性能测试-loadrunner参数化
工具:loadrunner11 ie8 场景:不同用户的登录 1.参数化功能: 让脚本使用批量的变化的数据测试,实现模拟不同数据/用户的行为 函数格式:返回值类型 函数名称(参数类型 参数,参数类型 ...
- Django的学习进阶(三)————ORM
django框架是将数据库信息进行了封装,采取了 类——>数据表 对象——>记录 属性——>字段 通过这种一一对应方式完成了orm的基本映射官方文档:https://docs.dja ...
- windows上node开发注意事项
windows上进行node.react开发的必要步骤: 1.使用nvm进行node及npm包管理工具,记得使用npm config set ...:2.另外react仅支持python3.0以下的版 ...
- IDEA下基于MAVEN的SSM框架整合
源码可以以上传github https://github.com/ingxx/ssm_first 最近把用IDEA把SSM框架整合一遍遇到了不少坑,在这里写出来 这里maven我使用的是自己下载的3. ...
- redis缓存穿透,缓存击穿,缓存雪崩原因+解决方案
一.前言 在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是 ...