什么是Node.js?

简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。

Node.js有两种模式,一种是脚本模式,一种是交互模式。

Node.js框架,比较热门的有 express,koa,hapi。其中express是最热门的框架,用的比较多,文档比较全,较稳定,而且很全面。koa太过于超前,不是很稳定,正在完善中。hapi框架太过于复杂,适合超大型的项目,做一个简单的程序就需要大量的环境堆砌。

http是nodejs里边自带的一个模块,可以用require方法导入,比如:

1 var http = require("http");

现在我们就已经用http创建了一个web服务,http中自带一个function叫createServer,里边有两个参数,request和response,request是浏览器发送给服务器的请求,response是服务器对浏览器的响应。

 1 http.createServer(function(request,response){
 2     if (request.url!=="/favicon.ico") { //清除浏览器的第二次访问
 3         //200代表的是http的状态:OK
 4         response.writeHead(200,{"content-Type":"text/html;charset = utf-8"});
 5         //对前端的响应
 6         response.write("你好");
 7         console.log("被访问");
 8         response.end();
 9     }
10 }).listen(8000);//监听8000端口(本地端口)

这里用的是苹果电脑,接下来是用终端来操作。首先在终端中通过cd回到主要菜单,ls查看里边包括的文件夹,cd打开对应的文件夹,这样一级一级打开,找到我们创建的文件,之后输入node + 文件名。之后在浏览器中打开localhost:8000,就可以访问自己写的js了。

调用函数的代码:

 1 var http = require("http");
 2 http.createServer(function(request,response){
 3     if (request.url!=="/favion.ico") {
 4         response.writeHead(200,{"content-Type":"text/html;charset = utf-8"});
 5         eat(response,"饺子");
 6         response.end();
 7     }
 8 }).listen(8000);
 9 console.log("服务器在本地的8000端口上");
10 function eat(res,food){
11     res.write(food);
12 }

node.js里边的类,包含属性和函数,继承关系。我们新建一个文件,里边内容是:

1 function User(id,name){
2     this.id = id;
3     this.name = name;
4     this.eat = function(){
5         return "吃东西";
6     }
7 }

但是我们想让外部使用必须想办法,我们有俩中办法:

第一种方法:global.waring是一种,全局文件都可以用但是node.js不推荐使用;

第二种方法:node.js中每个模块中都有一个属性叫module,module代表模块本身,里边有一个属性是exports,可以导出。例如:

1 module.exports = User;

接下来是引入这个文件

1 var temp = require("./node_03.js");

在网页上显示“吃东西”。

1 var http = require("http");
2 http.createServer(function(request,response){
3     if (response.url!=="/favion.ico") {
4         response.writeHead(200,{"content-Type":"text/html;charset = utf-8"});
5         var node = new temp();
6         response.write(node.eat());
7         response.end();
8     }
9 }).listen(8000);

我们看看module的属性都有哪些:

  1. id:模块的标识符,会加上带有他的绝对路径的文件名

  2. exports:整个模块要对外输出的值

  3. parent:调用当前模块的模块

  4. filename:文件的名字

  5. loaded:文件是否加载

  6. children:引用了哪个文件

  7. path:路径

http是一个模块,这个模块中有一个属性是STATUS_CODES是一个对象,里边的各种属性的值都是状态吗,属性的值是每个状态的解释。

request中的属性有4个:

  1. url:发送请求的网站

  2. method:请求的方式

  3. headers: http请求的所有的http头部信息

  4. setEcoding:可以设置请求的编码个是

post 的request-> data 和 end 俩个事件  可以设立对这俩个事件的监听函数

处理post请求:

1 var content = "哈哈";
2 request.on("data",function(a){
3    content += a;
4 });
5 request.on("end",function(){
6    response.writeHead(200,{"Content-Type":"text/html;charset = utf-8"}) ;
7    response.write("你发送了"+content);
8    response.end();
9 })

接下来这段代码用于生成https协议密匙,我们在终端里边这样写:

1 openssl genrsa -out key.em
2 openssl req -new -key key.pem -out csr.pem
3 openssl x509 -req -days 9999 -in csr.pem -signkey key.pem -out cert.nem
4 rm csr.pem

这是在终端的样子:

可能会无法创建这个不要紧,只要从网上再搜一些这方面的代码就行。

 1 var https = require("https");
 2 var fs = require("fs");
 3
 4 var options = {
 5     key:fs.readFileSync("key.pem"),
 6     cert:fs.readFileSync("cert.pem"),
 7 };
 8
 9 var server = https.createServer(options,function(request,response){
10     response.writeHead(200,{"Content-Type":"text/html;charset = utf-8"});
11     response.end("hello world");
12 }).listen(8000);

node内置的https支持

1 var server = https.createServer({
2     key:privateKey,
3     cert:certificate,
4     ca:certificateAuthoritycertificate
5 },app);

转载于:https://www.cnblogs.com/hgs-159/p/6052225.html

Node.js基本讲解相关推荐

  1. 高阶前端开发人员必备工具-Node.JS知识讲解

    想要成为一个"值钱"的高阶Web前端开发人才,Node.JS是必须要掌握的技术之一.今天小千就为大家详细讲解Node.JS的知识,让你完全了解Node.JS的前世今生. 1.说起N ...

  2. Mock.js 和Node.js详细讲解

    ​​​​原文地址:http://www.manongjc.com/article/10503.html <一统江湖的大前端>系列是自己的前端学习笔记,旨在介绍javascript在非网页开 ...

  3. 使用node.js进行API自动化回归测试

    概述 传统的QA自动化测试通常是基于GUI的,比如使用Selenium,模拟用户在界面上操作.但GUI测试的开发.维护成本和运行的稳定性一直是测试界的老大难问题.投入大量的人力物力开发.维护.运行,却 ...

  4. nodejs实战《一起学 Node.js》 使用 Express + MongoDB 搭建多人博客

    GitHub: https://github.com/nswbmw/N-blog N-blog 使用 Express + MongoDB 搭建多人博客 开发环境 Node.js: 6.9.1 Mong ...

  5. Node.js实现简单爬虫 讲解

    一.什么是爬虫 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定规则,自动的抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模 ...

  6. 实例讲解node.js解析URL并获取绝对路径和格式化

    解析URL url.parse(urlStr[, parseQueryString][, slashesDenoteHost]) 参数 说明 urlStr 网址 parseQueryString 是否 ...

  7. node.js和npm版本升级及升级过程中遇到的问题和解决方案

    Node.js和NPM版本升级 1. 安装Node.js 1.1 版本检查 1.2 下载安装程序 1.3 安装 2. npm升级 2.1 版本检查 2.2 升级 3. 检查Node.js和npm之间的 ...

  8. node.js是做什么的?

    作者:厂长 链接:https://www.zhihu.com/question/33578075/answer/56951771 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...

  9. Node.js项目实践:构建可扩展的Web应用

    2019独角兽企业重金招聘Python工程师标准>>> Node.js项目实践:构建可扩展的Web应用 <Node.js项目实践:构建可扩展的Web应用>用专业的讲解方式 ...

最新文章

  1. php 动态分页,PHP动态分页函数,PHP开发分页必备啦
  2. 一个基于webrick 的简单web服务器
  3. Go web之旅(路由篇)
  4. 打破数据统一的七大原则
  5. 阿里云配置负载均衡实例
  6. 一个模型能服务所有的点击率模型?
  7. CSS基本选择器、层次选择器、结构伪类选择器、属性选择器
  8. 【Python自然语言处理】中文分词技术——统计分词
  9. 基于 CoreAudio 的音频编解码(一):音频解码
  10. Java文件如何用qq邮箱发送_java中怎么发送复杂的邮件?在QQ邮箱中怎么操作?
  11. Open3d之RGBD测程法
  12. 子类调用父类的构造函数几种情况
  13. php/html+css+js制作计算器
  14. 乾颐堂现任明教教主(2014年课程)TCPIP协议详解卷一 第九节课笔记
  15. Python 和 奥数 — 同余法求数值
  16. linux系统pdf转图片
  17. 网吧游戏二层更新linux,图文细说网吧游戏更新软件【处理手段】
  18. Notepad++的字体设置加Consolas和微软雅黑混合字体
  19. 计算机科学与技术陈梦如,淮南师范学院马克思主义学院文件.doc
  20. (简单)华为P20 EML-AL00的USB调试模式在哪里打开的步骤

热门文章

  1. 利用KD树进行异常检测
  2. web常用正则表达式
  3. 建议15: 使用dynamic来简化反射实现
  4. silverlight中常用公共函数分享
  5. [好消息]博客园期刊第二期发布
  6. Linux popen和pclose启动shell命令的问题思考
  7. 10.11 arping:发送arp请求
  8. geth rpc无法开启_三分了解以太坊 Geth 客户端快照加速机制
  9. markdown 公式_【建议收藏】数学公式如何用Markdown优雅地写出来
  10. Apache Flink在 bilibili 的多元化探索与实践