因为是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基础的更多相关文章

  1. Node.js基础与实战

    Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...

  2. node.js基础模块http、网页分析工具cherrio实现爬虫

    node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...

  3. Node.js基础知识

    Node.js入门   Node.js     Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...

  4. NodeJs>------->>第三章:Node.js基础知识

    第三章:Node.js基础知识 一:Node.js中的控制台 1:console.log.console.info  方法 console.log(" node app1.js 1> ...

  5. 10慕课网《进击Node.js基础(一)》初识promise

    首先用最简单的方式实现一个动画效果 <!doctype> <html> <head> <title>Promise animation</titl ...

  6. 进击Node.js基础(二)

    一.一个牛逼闪闪的知识点Promise npm install bluebird 二.Promise实例 ball.html <!doctype> <!DOCTYPE html> ...

  7. 07慕课网《进击Node.js基础(一)》HTTP小爬虫

    获取HTML页面 var http = require('http') var url='http://www.imooc.com/learn/348' http.get(url,function(r ...

  8. 03慕课网《进击Node.js基础(一)》API-URL网址解析

    url url.parse(url,query,host);解析域名 url必须,地址字符串 query可选 host 可选:在不清楚协议时正确解析 querystring 字符串和对象之间互相解析 ...

  9. 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 ...

随机推荐

  1. webform 使用log4net配置

    效果: web.config配置 <configuration> <configSections> <!--log4net日志记录--> <section n ...

  2. plan,idea,and dream

    自学机器学习/数据分析/前端 目前想法是从前端入手,学会写/分析网页及其内容/数据,然后使用爬虫爬取数据,然后用机器学习算法对数据进行处理.哈哈,想法是不是太天真了. 学习都从网上的资料入手,因此发现 ...

  3. MySQL数据库(7)----数据库的选择、创建、删除和更改

    1.选择数据库 使用 USE 语句可以选择数据库,并把它指定为MySQL服务器连接的默认(当前)数据库: USE db_name; 要想选择数据库,用户必须要具备相应的访问权限:否则,会出现错误提示. ...

  4. Microsoft Visual Studio 2010下log4cplus的安装,集成,测试

    原文:http://blog.csdn.net/eclipser1987/article/details/6904301 log4cplus是C++编写的开源的日志系统,功能非常全面,用到自己开发的工 ...

  5. SQL Server ->> 使用Azure Active Directory Authentication连接到Azure SQL Database

    SQL Server 2016以后支持Azure AD集成验证,这当中有些数据驱动必须在高版本才可以使用,支持的包括sqlcmd,SSDT,JDBC,ODBC,SSMS等. 对于SSIS来讲,我们需要 ...

  6. asp.net生成PDF文件参考 .

    TextSharp 是用来生成  PDF 的一个组件,在 1998 年夏天的时候,Bruno Lowagie ,iText 的创作者,参与了学校的一个项目,当时使用 HTML 来生成报告,但是,使用 ...

  7. [翻译] JTNumberScrollAnimatedView

    JTNumberScrollAnimatedView 本人视频教程系类   iOS中CALayer的使用 效果: Use JTNumberScrollAnimatedView for have a n ...

  8. TMG阵列部署选择

    如果用户环境中有多个网络出口,用EMS配置TMG是最佳选择.在这种情况下,可以使用EMS管理的阵列配置企业级访问规则.由于一个单一的策略适用于整个企业的所有阵列,因此管理成本将大大降低.用于EMS的服 ...

  9. MySQL 数据库--索引原理与慢查询优化

    索引的原理 本质都是:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据. 索引的数据结构 b+ ...

  10. IGraphicsContainer->AddElement函数

    纠结中...... IGraphicsContainer.AddElement函数应该是比较简单的,可能无论添加什么要素,就是无法显示出结果出来. 难道添加元素前是有什么需要设置的?或是其它一些原因? ...