刚刚学习node,以下是自己的一点小心得,不足之处还望多多谅解。
http/https
一,服务器端(监听端口,获取及返回数据)
server.js
var http=require('http');
//创建服务
var server=http.createServer(function(req,res){
//request(要求,申请)请求的相关信息
//response(回答,反应)返回相关信息
res.end('hello')
})
console.log('服务已开启8080');
//监听端口号
server.listen(8080)
node server.js ->在浏览器中输入localhost:8080 ->将会出现hello
二,客户端(向服务器端发送请求)
//客户端
var http = require('http');
http.get("url", (data) => {
//参数直接在url?xxx=aa&..拼
//data为请求的数据
var str = '';
//请求开始 chunk数据片段
data.on('data', function (chunk) {
str += chunk;
})
//请求结束
data.on('end', function () {
//str即为拿到的数据 可结合客户端将数据发给前端
console.log(str);
})
})
如果觉得手动拼参麻烦可以用querystring模块
下载 cnpm i querystring
引入 var qs=require('querystring');
- querystring.decode()
- querystring.encode()
- querystring.escape(str)
- querystring.parse(str[, sep[, eq[, options]]])
- querystring.stringify(obj[, sep[, eq[, options]]])
-
querystring.unescape(str)
decode()/encode() //编码解码
主要用到parse()/stringify()
例如:
var obj={aa:'hello',bb:'word'}
var res=qs.stringify(obj) //res aa=hello&bb=word
var resp=qs.parse(res) //resp {aa:'hello',bb:'word'}
fs文件模块(常用读/写)
server.js
var fs=require('fs');
//读取
// url地址,这里读的为本地当前目录下的index.txt
// fs.readFile('./index.txt',(err,data)=>{
// err错误先行 data读取的数据
// console.log(data.toString());
// })
//写入
//fs.writeFile('./index.txt','冬天来了,春天还会远吗',(err,data)=>{
// 成功的回调函数
//})
ejs模板引擎(具体模板语法到ejs官网查看)
<% 脚本标签用于流程控制(内部可用循环等语法)
%> 一般结束标签
<%= 输出数据到模板(输出是转义html标签)
<%- 输出非转义的数据到模板
server.js
var ejs=require('ejs');
var http=require('http');
var obj={
name:'misli',
age:'23',
weight:'140'
}
var server=http.createServer((req,res)=>{
//将obj的内用插到index.html模板中返回给8080端
ejs.renderFile('./index.html',obj,(err,data)=>{
res.end(data)
})
})
console.log(8080);
server.listen(8080)
index.html(可以是其它后缀名只要有模板就行)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div>
<div><%=name%></div>
<div><%=age%></div>
<div><%=weight%></div>
</div>
</body>
</html>