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 初学 自我笔记整理 day01的更多相关文章

  1. node.js入门学习笔记整理

    (1)node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node与javaScript的区别在于,javaScript的顶层对象是window,而no ...

  2. Node.js初学

    Node.js 初学~ 其技术上最大的卖点是非阻塞的I/O和基于事件的异步处理机制. 后端没有什么深入研究,一直对其不是很了解. 透过一个例子看 非阻塞 与 通常的 阻塞 var text = rea ...

  3. node.js 初学(二)—— 搭建注册/登录服务器

    node.js 初学(二)—— 搭建注册/登录服务器 理论上来说,代码实现在理论和实际上是一样的.但实际上来说,他们不是 做一个最简单的用户注册登录功能 1.接口定义: 注册:/user?act=re ...

  4. node.js 初学(一)—— http fs 服务器/文件/post get

    node.js 初学 —— http fs 服务器/文件/post get 这个世界,从来不会给失败者颁奖! 了解 node.js (开源) node.js 是用来做后台开发的,但是现在大部分前端人员 ...

  5. node.js学习的资源整理

    node中文社区 Node.js专业中文社区:https://cnodejs.org/ node文档 node.js 中文api :http://nodeapi.ucdok.com/ node.js入 ...

  6. Node.js的知识点框架整理

    背景:因为appium是基于Node.js的,所以想看一下Node.js.但是发现很多资料的顺序看起来有点颠倒.然后就一面看资料一面整理了一下大概的知识点框架,希望对自己对别人有用. 本文不包含nod ...

  7. Node.js API学习笔记(一)

    此文章已经发表于本人博客. Terminal(终端) 说起这个使用过linux系统的兄台一般都会知道的,本人理解:类似Putty这些ssh工具通过 软件来实现远程控制主机,对于我们使用者来说,它会显示 ...

  8. 《深入浅出Node.js》学习笔记(一)

    看了朴灵前辈的node.js系列文章,很开阔视野,虽然能力有限还是有很多不懂,但是还是希望能写下笔记,初步对node.js有点了解. 一.概念 Node.js不是JS应用.而是JS运行平台 Node. ...

  9. Node.JS学习——学习笔记

    Node.JS--学习笔记 2020年02月23日11:52:01 我打算自学NodeJS-通过阅读NodeJS官网来完成. https://nodejs.org/dist/latest-v13.x/ ...

随机推荐

  1. 题解 AT2243 【正方形のチップ】

    题意:在格子纸上: 给出格子的单位长度C,和在上面圆的半径R; 求出: 圆中有多少个完整的小正方形.(单位长度*单位长度) #include<cstdio> #include<cma ...

  2. 个人永久性免费-Excel催化剂功能第36波-新增序列函数用于生成规律性的循环重复或间隔序列

    啃过Excel函数的表哥表姐们,一定对函数的嵌套.数组公式等高级的应用有很深的体会,威力是大,但也烧死不少脑细胞,不少人就在这样的绕函数中光荣地牺牲了,走向从入门到放弃.Excel催化剂的创立,初衷就 ...

  3. [leetcode] 392. Is Subsequence (Medium)

    原题 判断子序列 /** * @param {string} s * @param {string} t * @return {boolean} */ var isSubsequence = func ...

  4. 图解Redis之数据结构篇——跳跃表

    前言       跳跃表是一种有序的数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的.这么说,我们可能很难理解,我们可以先回忆一下链表. 一.复习跳跃表 1.1 什么 ...

  5. Linux设备驱动程序学习----2.内核模块与应用程序的对比

    内核模块与应用程序的对比 更多内容请参考Linux设备驱动程序学习----目录 1. 内核模块与应用程序的对比 内核模块和应用程序之间的不同之处: 大多数中小规模的应用程序是从头到尾执行单个任务,而模 ...

  6. 一个完整的产品设计流程——家庭安全管家

    不管是产品设计,还是前后端开发,始终都应该做出来才能够有很好的提高锻炼.书看得再多,如果不配合实际练习始终得不到实质性的进展. 接下来的案例是和几位学弟学妹一起做的,契机是参加一个用户体验设计比赛,从 ...

  7. 用wxpy管理微信公众号,并利用微信获取自己的开源数据。

    之前了解到itchat 乃至于 wxpy时 是利用tuling聊天机器人的接口.调用接口并保存双方的问答结果可以作为自己的问答词库的一个数据库累计.这些数据可以用于自己训练. 而最近希望获取一些语音资 ...

  8. Skier 游戏

    # Listing_10-1.py # Copyright Warren Sande, 2009 # Released under MIT license http://www.opensource. ...

  9. ansible-service

    #service#查询服务状态 ansible server01 -m service -a "name=httpd state=started" #停止服务 ansible se ...

  10. MySql性能优化读书比较<一> 数据类型

    一,选择优化的数据类型 1.更小的通常更好. 更小的数据类型通常占用更少的磁盘,内存和cpu缓存,通常更快. 2.简单就好 简单的数据类型操作,通常需要更少的CPU周期. 3.尽量避免NULL值 列可 ...