web
服务器,让js成为php
,java
一样的语言node
文件名Node.js
模块系统中,每个文件都被视为一个独立的模块exports.成员名 = 值
module.exports.成员名 = 值
require("./")
//a.js
function add(a=0,b=0){
console.log(a+b)
}
function del(a=0,b=0){
console.log(a-b)
}
module.exports = {
add,
del
}
//b.js
var b=require('./a')
console.dir(b)
add(1,2)
del(3,1)
fs
文件操作模块writeFile('文件名','写入的数据',回调函数)
readFile('文件名','utf8',回调函数)
//02.js
const fs = require('fs')
//引入fs模块
var content = "你好"
fs.writeFile('./02.txt',content,function(err){
if(err){
return console.log(err)
}
console.log('success') //err 为null 写入成功
})
//03.js
const fs = require('fs')
var content = "你好"
fs.readFile('./02.txt','utf8',function(err,data){
if(err) return console.log(err) //err 为null 写入成功
console.log(data)
})
path
模块basename()
取最后一层dirname()
去掉最后一层//04.js
const path = require('path')
//引入path模块
var str = 'C:Project/view/node/class.html'
console.log(path.dirname(str)) //C:Project/view/node
console.log(path.basename(str)) //class.html
os
模块url
模块parse()
解析url地址//引入url模块
const url = require ('url')
console.log(url)
//parse()解析地址
var str='https://class/index?name=Jonse&pw=123'
console.log(url.parse(str,true).query.name)
//获取对应数据,es6对象解构赋值
let {name,age} = url.parse(str,true).query
console.log(name) //Jonse
console.log(age) //123
http
模块//1.引入
const http = require('http')
//2.创建服务器
var server = http.createServer()
//3.监听请求,req:request请求 res:response 响应
server.on('request',function(req,res){
//响应内容,解决乱码(设置响应头部)
res.setHeader('Content-Type','text/html;charset=utf-8')
res.write('hello')
res.end()
})
//4.启动服务器
server.listen(12345,function(){
console.log("服务已开启,访问http://localhost:12345")
})
req对象
请求路径 req.url
请求方式 req.method
res对象
res.setHeader()
res.write()
res.end()
留言板案例
css
js
文件不用设置请求头
indexOf()
方法var baseUrl = req.url
if(baseUrl.indexOf('/public')>-1){
fs.readFile('.'+baseUrl,'utf-8',function(err,data){
if(err) return res.end(err)
//success响应数据
res.write(data)
//响应结束
res.end()
})
}
replace()
方法是什么:命令行工具
做什么:下载第三方模块
去哪学: 官网 https://www.npmjs.com/
//案例
var mime = require('mime')
console.log(mime.getType('1.js'))// application/javascript
//案例
var template = require('art-template')
//核心语法 template.render('模块字符串',数据)
//在模块字符串里面替换数据
//显示数据 {{}}
//循环 {{each 数组}} {{$index}} {{$value}} {{/each}}
//判断 {{if 条件}} ... {{/if}} {{if v1}} ... {{else if v2}} ... {{/if}}
//
nrm 安装 :npm install nrm -g
查看服务器:nrm ls
切换源:nrm use 服务器名
测速:nrm test
session
- 作用:防,(内部页面未登录不能访问)
- (1)安装模块 npm i express-session
(2)引入
(3)初始化 app.use(session({
secret:‘keyboard cat’, //加密
resave:false, //客服端请求是否覆盖
saveUninitialzed:true //初始化session存储
}))
(4)添加删除session *添加session:req.session.名称=值 *删除session req.session.名称 = null *获取 req.session.名称