node内置模块http,fs,ejs

刚刚学习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(可以是其它后缀名只要有模板就行)




    
    
    
    Document


    
<%=name%>
<%=age%>
<%=weight%>

你可能感兴趣的:(node内置模块http,fs,ejs)