NodeJ node.js基础
因为是Node服务器端的,怎样实现前台和后台请求以及回应
URL(由什么组成的 ),传输的内容:表单数据 文件数据 【图片、压缩包、各种后缀文件】
URL的组成 URL由三部分组成: 协议类型 , 主机名 和 路径及文件名 。通过URL可以指定的主要有以下几种:http、ftp、gopher、telnet、file等。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
前台向后台发送请求,后台监听收到获取传过来的 url以及path分析,对应请求的是什么,我该怎么回应
后台读写文件操作
const fs=require('fs');
/**写入文件操作 */
// fs.writeFile('./a.txt', 'asdfasdfad', err=>{
// if(err){
// console.log('失败', err);
// }else{
// console.log('成功')
// }
// });
/**读取文件操作 */
fs.readFile('./a.txt', (err,data)=>{
if(err){
console.log('失败')
}else{
console.log('成功' + data)
}
});
创建http (这个是必须的 node一切通过你创建的http协议 属于底层结构代码)
const http = require('http');
let server = http.createServer(()=>{
console.log('请求来了');
})
//服务器一直在监听 8080 端口
server.listen(8080);
前台html文件 后台针对前台某个路径下的文件 接收请求
const http = require('http');
const fs = require('fs');
let server = http.createServer(function (req,res){
console.log(req.url)
fs.readFile(`www${req.url}`,(err,buffer)=>{
if(err){
res.writeHeader(404)
console.log('error')
res.end()
}else{
res.write(buffer)
res.end();
}
})
});
server.listen(8080);
一旦接受请求http接受到请求就会 在req中就回有对应的属性 获取使用 例如 req.url ,读取到这个文件了 服务器就会返回设置的响应
状态码:(百度百科)
https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660
大概分类 5类:
100 消息 200 请求成功 300重定向 400 请求错误(404) 500 就是服务器错误
Form 前台表单提交
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<form action="http://localhost:8080/reg" method="get">
用户:<input type="text" name="username" /><br>
密码:<input type="password" name="password" /><br>
<input type="submit" value="提交" />
</form>
</body>
</html>
Get.html
const http = require('http');
const querystring = require('querystring');
let server = http.createServer(function(req,res){
let [url,query] = req.url.split('?');
console.log(url,query)
});
server.listen(8080);
Server_Get.js

Get_Url 导入一个 Url 就是专门做这个的
const http = require('http');
const url = require('url');
let server = http.createServer(function(req,res){
// let result = url.parse(req.url,true);
let {pathname,query} = url.parse(req.url,true);
console.log(pathname,query)
});
server.listen(8080);

Post——获取这个url中的信息呢 因为不可以使用 url 所以呢 相对复杂一点
const http = require('http');
const url = require('url');
let server = http.createServer(function(req,res){
let arr = [];
req.on('data',buffer=>{
arr.push(buffer)
})
req.on('end',()=>{
let result = Buffer.concat(arr)
console.log(result.toString())
})
})
server.listen(8080);
Post—— 引入queryString
const http = require('http');
const querystring = require('querystring');
const url = require('url');
let server = http.createServer(function(req,res){
let arr = [];
// req中的方法
req.on('data',buffer=>{
arr.push(buffer)
})
req.on('end',()=>{
// Buffer 中的会将数组中的值进行组合
let result = Buffer.concat(arr)
// 通过querystring 将字符串 转为 JSON格式的
let jsondata = querystring.parse(result.toString());
// 打印输出
console.log(jsondata)
})
})
server.listen(8080);

- 引入node中的模块包
- const http = require('http');
- 字符串转json
- Url.parse(req.url,true)
| 个人域名:www.haisen.club |
NodeJ node.js基础的更多相关文章
- Node.js基础与实战
Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...
- node.js基础模块http、网页分析工具cherrio实现爬虫
node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言 说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...
- Node.js基础知识
Node.js入门 Node.js Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...
- NodeJs>------->>第三章:Node.js基础知识
第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info 方法 console.log(" node app1.js 1> ...
- 10慕课网《进击Node.js基础(一)》初识promise
首先用最简单的方式实现一个动画效果 <!doctype> <html> <head> <title>Promise animation</titl ...
- 进击Node.js基础(二)
一.一个牛逼闪闪的知识点Promise npm install bluebird 二.Promise实例 ball.html <!doctype> <!DOCTYPE html> ...
- 07慕课网《进击Node.js基础(一)》HTTP小爬虫
获取HTML页面 var http = require('http') var url='http://www.imooc.com/learn/348' http.get(url,function(r ...
- 03慕课网《进击Node.js基础(一)》API-URL网址解析
url url.parse(url,query,host);解析域名 url必须,地址字符串 query可选 host 可选:在不清楚协议时正确解析 querystring 字符串和对象之间互相解析 ...
- 01慕课网《进击Node.js基础(一)》Node.js安装,创建例子
版本:偶数位为稳定版本,基数为非稳定版本 - 0.6.x - 0.7.x - 0.8.x -0.9.x -0.10.x -0.11.x 概念:Node.js采用谷歌浏览器的V8引擎,用C ...
随机推荐
- 关于modelmap.addAttribute("",)转到jsp页面获取不到值的问题
问题一,可能是你设置的web.xml的头有问题 掉坑里好一会,发现我默认生成的web.xml中头部的配置是 <!DOCTYPE web-app PUBLIC "-//Sun Micro ...
- The formal parameters of the method
package basic.java; public class ParametersOfTheMethod { public static void main(String[] args) { in ...
- 浅谈 unix, linux, ios, android 区别和联系
浅谈 unix, linux, ios, android 区别和联系 网上的答案并不是很好,便从网上整理的相对专业的问答,本人很菜,大佬勿喷 UNIX 和 Linux UNIX 操作系统(尤尼斯) ...
- 下载 github 项目文件到本地方法
下载 github 项目文件到本地方法 本篇终极,收集 3 种方法 最厉害 666 的方法 直接访问网站: 操作如下: 本地工具版下载方法 首先需要下载 git 客户端 我就不转载了,上面有客户端的使 ...
- Mac 下VIM配置
Mac下VIM配置 首先,我们去这里下载MacVim,也可用这个网址:(http://code.google.com/p/macvim/),进入后的界面如下: ____________________ ...
- Datatables跳转到指定页
因为项目用到Datatables发现在分页特别多时无法跳转到指定页,自己动手增加了#Datatables 跳转到指定页#功能,实现代码如下: table = $('#user-table').data ...
- 重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件
重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件 为什么会需要这样子的一种方法来实现隐藏或者显示一个cell中的某些控件呢? 其实,隐藏cell中某 ...
- Linux系统下安装Redis和Redis集群配置
Linux系统下安装Redis和Redis集群配置 一. 下载.安装.配置环境: 1.1.>官网下载地址: https://redis.io/download (本人下载的是3.2.8版本:re ...
- 2、Node.js 第一个应用
内容:三种变量申明方式,Node.js应用组成,第一个应用创建+代码 ################################################################# ...
- MongoDB authentication failed
0.随笔摘要: MongoDB 安装配置 MongoDB 权限控制 MongoDB 注意事项 authentication failed 1.MongoDB 下载安装配置 MongoDB官网 ...