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交互 ...
随机推荐
- zoj3995 fail树
//给n个串 求两个串的(最长)公共后缀, 如果这个后缀是1个串的前缀 ,那么++ans,求ans/* 对所有串建立AC自动机,那么若前缀ii 是前缀jj 的后缀,说明ii 是Fail树上jj 的祖先 ...
- poj3683 2-SAT 同上一道
Priest John's Busiest Day Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 10151 Accep ...
- 仙人掌图判定及求直径HDU3594 BZOJ1023
https://wenku.baidu.com/view/ce296043192e45361066f575.html //仙人掌图基础知识3个判定条件 http://blog.csdn.net/y ...
- 基于SpringCloud分布式架构
基于SpringCloud分布式架构 为什么要使用分布式架构 Spring Cloud 专注于提供良好的开箱即用经验的典型用例和可扩展性机制覆盖 分布式/版本化配置 服务注册和发现 路由 Servic ...
- Flutter 使用Navigator进行局部跳转页面
老孟导读:Navigator组件使用的频率不是很高,但在一些场景下非常适用,比如局部表单多页填写.底部导航一直存在,每个tab各自导航场景. Navigator 是管理路由的控件,通常情况下直接使用N ...
- NOI2006 最大获利 洛谷P4174
洛谷题目传送门! 题目描述 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU 集团旗下的 CS&T 通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就 ...
- [PHP学习教程 - 网络]002.获取网页内容(URL Content)
引言:获取网页内容是我们实现网页操作的基本之基本,今天这一讲,我们和大家讲一下基本请求网页内容的几种方法. 我们似乎每天都要做这样一件事情,打开一个浏览器,输入网址,回车,一个空白的页面顿时有了东西, ...
- This关键字练习
Account: package com.aff.ex; public class Account { private int id;// 账号 private double balance;// 余 ...
- meavn项目由打包方式jar改为war报Cannot install Dynamic Web Module 2.5 facet. It is incompatibile with already installed facets: Utility Module. Please modify project configuration.处理方式
找到 \项目名\.setting\文件夹下的 org.eclipse.wst.common.project.facet.core.xml xml文件. 添加或修改 <installed ...
- 关于oauth安全
白话认证流程 A)用户打开客户端以后,客户端要求用户给予授权.(比如说你登陆淘宝,通过QQ这个第三方来登录时,这个时候淘宝将你引导至QQ的认证服务器) B)用户同意给客户端授权.(这个时候在你手机上弹 ...