Node.js 学习笔记(一)
什么是 Web 服务器?
Web 应用架构

const http=require('http');
var server=http.createServer(function(req,res){ //req----require是请求,res----respond是回应
console.log("访问了一次");//这里改为("req.url")可以返回访问的网址
res.write("在页面上显示文字");
res.end();
});
server.listen(8080);//监听,括号里为本地端口号,一台服务器可能同时对外提供很多种服务,端口是代表访问服务器里哪种服务的一串数字。 这里的地址为localhost:8080.
var fs= requeir("fs");
//异步读取
fs.readFile("index.html",function(err,data){
if(err){
return console.error(err);
}
console.log("异步读取:"+data.toString());//这里如果不加 toString() 会显示一堆二进制
});
//同步读取
var data =fs.readFileSync('index.html');
console.log("同步读取:"+data.toString());
console.log("程序执行完毕。");
同步读取:www.nodeJs.com 程序执行完毕。//注意这里是程序先执行完毕
异步读取:www.nodeJs.com
<form action="http://localhost:8080/aaa" method="get">
用户:<input type="text" name="user" value="" /><br />
密码:<input type="password" name="pass" value="" /><br />
<input type="submit" value="提交" />
</form>
node.js代码:
var http=require('http');
http.createServer(function(req,res){
console.log(req.url);
res.write('submit success');
res.end();
}).listen(8080);

var http = require('http');
http.createServer(function(req, res) {
var GET = {};
if (req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
//arr[0]=>地址 '/aaa'
//arr[1]=>数据 'user=xuhuihong&pass=123456'
var arr2 = arr[1].split('&');
//arr2=>['user=blue','pass=123456']
for (var i = 0; i < arr2.length; i++) {
var arr3 = arr2[i].split('=');
//arr3[0]=>名字 'user'
//arr3[1]=>数据 'blue'
GET[arr3[0]] = arr3[1]; //键值对
}
}else {
var url = req.url;
}
console.log(url, GET);
res.write('submit success');
res.end();
}).listen(8080);
var http = require('http');
const querystring = require('querystring');
http.createServer(function(req, res) {
var GET = {};
if (req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
GET=querystring.parse(arr[1]);
}else {
var url = req.url;
}
console.log(url, GET);
res.write('submit success');
res.end();
}).listen(8080);
nodejs代码
const urlLib=require('url');
var obj=urlLib.parse('https://www.bilibili.com/index?a=55&b=6600');
console.log(obj);
Url {
protocol: 'https:',
slashes: true,
auth: null,
host: 'www.bilibili.com',
port: null,
hostname: 'www.bilibili.com',
hash: null,
search: '?a=55&b=6600',
query: 'a=55&b=6600',
pathname: '/index',
path: '/index?a=55&b=6600',
href: 'https://www.bilibili.com/index?a=55&b=6600' }
var obj=urlLib.parse('https://www.bilibili.com/index?a=55&b=6600',true);
query: { a: '55', b: '6600' },
var http = require('http');
const urlLib=require('url');
http.createServer(function(req, res) {
var obj=urlLib.parse(req.url,true);
var url=obj.pathname;
var GET=obj.query;
console.log(url, GET);
res.write('submit success');
res.end();
}).listen(8080);
const http = require('http');
const querystring=require('querystring');
http.createServer(function(req, res) {
//post--req
var str="";//接受数据
//data--有一段数据到达(很多次)
var i=0;
req.on('data',function(data){
console.log('第${i++}次收到数据');
str+=data;
});
//end-数据全部到达(一次)
req.on('end',function(){
var POST=querystring.parse(str);
console.log(str);
});
}).listen(8080);
user=qqqqqq&pass=aaaaaaaaa
const http=require('http');
const fs=require('fs');
const queryString=require('querystring');
const urlLib=require('url');
var server = http.createServer(function(req,res){
//GET
var obj=urlLib.parse(req.url,true);
var url=obj.pathname;
const GET=obj.query;
//POST
var str='';
req.on('data',function(data){
str+=data;
});
req.on('end',function(){
var POST=queryString.parse(str);
/*
url--要什么
GET--get数据
POST--post数据
*/
console.log(url,GET,POST);
//文件请求
var file_name='./www'+url; //这里url要输完后缀
fs.readFile(file_name,function(err,data){
if(err){
res.write('404');
}else{
res.write(data);
}
res.end();
});
});
});
server.listen(8080);
Node.js 学习笔记(一)的更多相关文章
- 一点感悟:《Node.js学习笔记》star数突破1000+
写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...
- Node.js学习笔记(3):NPM简明教程
Node.js学习笔记(3):NPM简明教程 NPM常用操作 更新NPM版本 npm install npm -g -g,表示全局安装.我们可以指定更新版本,只需要在后面填上@版本号即可,也可以输入@ ...
- 系列文章--Node.js学习笔记系列
Node.js学习笔记系列总索引 Nodejs学习笔记(一)--- 简介及安装Node.js开发环境 Nodejs学习笔记(二)--- 事件模块 Nodejs学习笔记(三)--- 模块 Nodejs学 ...
- Node.js学习笔记(2):基本模块
Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...
- Node.js学习笔记(1):Node.js快速开始
Node.js学习笔记(1):Node.js快速开始 Node.js的安装 下载 官方网址:https://nodejs.org/en/ 说明: 在Windows上安装时务必选择全部组件,包括勾选Ad ...
- Node.js学习笔记(4):Yarn简明教程
Node.js学习笔记(4):Yarn简明教程. 引入Yarn NPM是常用的包管理工具,现在我们引入是新一代的包管理工具Yarn.其具有快速.安全.可靠的特点. 安装方式 使用npm工具安装yarn ...
- Node.js学习笔记(一)
1.回调函数 node是一个异步事件驱动的平台,所以在代码中我们经常需要使用回调函数. 例: setTimeout(function(){ console.log('callback is calle ...
- Node.js学习笔记(一):快速开始
最近接了一个node项目,虽然最后顺利完成了,但是由于第一次实战,整个过程是赶出来的,许多地方一知半解.现在项目结束了,就静下心来系统地学一学,理一理,读书不忘拿笔,既然读书了,当然就要记点东西.一方 ...
- Node.js学习笔记(一)基础介绍
什么是Node.js 官网介绍: Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js us ...
- node.js学习笔记(三)——事件循环
要理解事件循环,首先要理解事件驱动编程(Event Driven Programming).它出现在1960年.如今,事件驱动编程在UI编程中大量使用.JavaScript的一个主要用途是与DOM交互 ...
随机推荐
- 【面经分享】互联网寒冬,7面阿里,终获Offer,定级P6+
点赞再看,养成习惯,微信搜索[敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的系列文 ...
- 工作中遇到的SQL
1.根据a表中的字段col,修改b表中的col UPDATE a INNER JOIN b ON a.id = b.id SET b.col = xx WHERE a.col = xx 2.模糊查询 ...
- Mybatis配置-简单的使用
导包 基本配置 配置mybatis.config.xml文档 <?xml version="1.0" encoding="UTF-8" ?> < ...
- Kubernetes实战 - 从零开始搭建微服务 - 1.5 提高可用性-发布多节点的Node/Express网络应用程序
1.5 提高可用性-发布多节点的Node/Express网络应用程序 Kubernetes实战 - 从零开始搭建微服务 前言 在上一篇文章中,已经学习了如何简单地开发一个单层网络应用.[Kuberne ...
- iOS开发判断手机号及其运营商
根据三大运营商出现的号段(号段来自百度百科) 判断是否是手机号 + (BOOL)isMobile:(NSString *)str { NSString *MOBILE = @"^1(3[0- ...
- Springboot 内置tomcat 基本配置收集整理
配置一: server:# tomcat 配置 tomcat: # 接收队列长度 accept-count: 1000 # 最小空闲线程数 min-spare-threads ...
- VUE源码解析心得
解读vue源码比较好奇的几个点: VUE MVVM 原理 http://www.cnblogs.com/guwei4037/p/5591183.html https://cn.vuejs.org/v2 ...
- 「MoreThanJava」计算机系统概述
「MoreThanJava」 宣扬的是 「学习,不止 CODE」,本系列 Java 基础教程是自己在结合各方面的知识之后,对 Java 基础的一个总回顾,旨在 「帮助新朋友快速高质量的学习」. 当然 ...
- 关于react中antd design pro下面src/models
1.src/models 在 Ant Design Pro 中,一个完整的前端 UI 交互到服务端处理流程是这样的: 1.UI 组件交互操作: 2.调用 model 的 effect: 3.调用统一管 ...
- JavaSE (五)面向对象 -- 概述
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 目录 一.面向对象的主线 二.面向对象 VS 面向过程 三 . java最基本的两个要素 - 类和对象 ...